-
카테고리
-
세부 분야
데브옵스 · 인프라
-
해결 여부
미해결
kubectl apply -f d-role.yaml 에러
19.11.25 16:18 작성 조회수 492
1
kubectl apply -f d-role.yaml
error: error validating "d-role.yaml": error validating data: [ValidationError(ClusterRole): unknown field "apiGroup" in io.k8s.api.rbac.v1beta1.ClusterRole, ValidationError(ClusterRole): unknown field "k8s-app" in io.k8s.api.rbac.v1beta1.ClusterRole, ValidationError(ClusterRole): unknown field "name" in io.k8s.api.rbac.v1beta1.ClusterRole, ValidationError(ClusterRole): unknown field "namespace" in io.k8s.api.rbac.v1beta1.ClusterRole, ValidationError(ClusterRole): unknown field "subjects" in io.k8s.api.rbac.v1beta1.ClusterRole]; if you choose to ignore these errors, turn validation off with --validate=false
위의 명령을 실행 하면 에러가 발생합니다.
이상태에서 브라우저로 뛰우면 스킵 이라는 보튼이 보이지 않고요..
그리고 다른분에게 조언 하신것 처럼 파일을 직접 다운로드 받아서 수정하면 그 분과 동일하게 404 에러가 납니다.
혹 방법을 아시면 조언 부탁 드리겠습니다.
답변을 작성해보세요.
1
1
1
kium
질문자2019.11.26
실행결과
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
확인결과
kube-system kubernetes-dashboard-64546965d6-cthml 1/1 Running 0 41s
결과
스킵 버튼이 보입니다.
감사합니다.
1
kium
질문자2019.11.26
1. 削除結果
secret "kubernetes-dashboard-certs" deleted
serviceaccount "kubernetes-dashboard" deleted
role.rbac.authorization.k8s.io "kubernetes-dashboard-minimal" deleted
rolebinding.rbac.authorization.k8s.io "kubernetes-dashboard-minimal" deleted
deployment.apps "kubernetes-dashboard" deleted
service "kubernetes-dashboard" deleted
2. 削除結果
clusterrolebinding.rbac.authorization.k8s.io "kubernetes-dashboard" deleted
3. 削除結果
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system event-exporter-v0.2.5-7df89f4b8f-rvgmr 2/2 Running 0 21h
kube-system fluentd-gcp-scaler-54ccb89d5-s4469 1/1 Running 0 21h
kube-system fluentd-gcp-v3.1.1-2wxwb 2/2 Running 0 21h
kube-system fluentd-gcp-v3.1.1-7wpl8 2/2 Running 0 21h
kube-system heapster-5dc9468777-nwv8q 3/3 Running 0 21h
kube-system kube-dns-5877696fb4-kt666 4/4 Running 0 21h
kube-system kube-dns-5877696fb4-wc9wm 4/4 Running 0 21h
kube-system kube-dns-autoscaler-85f8bdb54-66dc9 1/1 Running 0 21h
kube-system kube-proxy-gke-k8s-cluster-default-pool-ef36ff7f-5jtp 1/1 Running 0 21h
kube-system kube-proxy-gke-k8s-cluster-default-pool-ef36ff7f-5nbl 1/1 Running 0 21h
kube-system l7-default-backend-8f479dd9-rl5zf 1/1 Running 0 21h
kube-system metrics-server-v0.3.1-8d4c5db46-kglkg 2/2 Running 0 21h
kube-system prometheus-to-sd-44ddr 2/2 Running 0 21h
kube-system prometheus-to-sd-mls2f 2/2 Running 0 21h
kube-system stackdriver-metadata-agent-cluster-level-5747957f94-c5m8z 1/1 Running 0 21h
4. Error
error: error parsing https://github.com/taemin77/k8s-examples/blob/master/beginners/gcp-dashboard.yaml: error converting YAML to JSON: yaml: line 118: mapping values are not allowed in this context
추가하신 118 줄에 에러가 발생하는 거 같은데요
1
일프로
지식공유자2019.11.26
그럼 Mac에서 아래 명령으로 - --enable-skip-login를 추가했을때 정상적으로 입력이 안되는게 문제라고 봐야겠네요
kubectl -n kube-system edit deployments.apps kubernetes-dashboard
대화중에 놓친 부분도 있을 수 있겠고, 저도 Mac환경을 세팅할려면 시일이 많이 소요되는 상황인데요.
이전에 문의 주신 분께서는 어떻게 해결이 되었는지 결과가 없지만
아래 내용대로 다시 한번 해보는건 어떨까요?
그리고 이 진행 화면을 저에게도 알려주시면 좋을 것 같습니다.
일단 기존에 설치된 대시보드를 아래 명령으로 삭제하시고요.
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
[삭제결과 로그를 알려주세요.]
그리고 위에서 이전에 실행했을 권한파일 만드는 명령도 아래 명령을 붙여넣어서 자원을 삭제합니다.
kubectl delete clusterrolebinding kubernetes-dashboard -n kube-system
[삭제결과 로그를 알려주세요.]
실제로 잘 삭제되었는지 아래 명령으로 확인
kubectl get pods --all-namespaces
[결과 로그를 알려주세요.]
아래 제 Github에 enable-skip-login과 권한추가 등을 넣어서 새로 만들었습니다
kubectl apply -f https://github.com/taemin77/k8s-examples/blob/master/beginners/gcp-dashboard.yaml
[생성 결과 로그를 알려주세요.]
끝으로 다신 한번 잘 만들어졌는지 아래 명령으로 확인
kubectl get pods --all-namespaces
4-1-3) proxy 띄우기
kubectl proxy
4-1-4) 접속 URL
http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/.
1
kium
질문자2019.11.26
구글로 설치 안하고 강사님 노트따라서 했습니다.
그리고 위의명령어 결과는 아래와 같습니다.
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system event-exporter-v0.2.5-7df89f4b8f-rvgmr 2/2 Running 0 20h
kube-system fluentd-gcp-scaler-54ccb89d5-s4469 1/1 Running 0 20h
kube-system fluentd-gcp-v3.1.1-2wxwb 2/2 Running 0 20h
kube-system fluentd-gcp-v3.1.1-7wpl8 2/2 Running 0 20h
kube-system heapster-5dc9468777-nwv8q 3/3 Running 0 20h
kube-system kube-dns-5877696fb4-kt666 4/4 Running 0 20h
kube-system kube-dns-5877696fb4-wc9wm 4/4 Running 0 20h
kube-system kube-dns-autoscaler-85f8bdb54-66dc9 1/1 Running 0 20h
kube-system kube-proxy-gke-k8s-cluster-default-pool-ef36ff7f-5jtp 1/1 Running 0 20h
kube-system kube-proxy-gke-k8s-cluster-default-pool-ef36ff7f-5nbl 1/1 Running 0 20h
kube-system kubernetes-dashboard-5f7b999d65-qpgsb 1/1 Running 0 18h
kube-system l7-default-backend-8f479dd9-rl5zf 1/1 Running 0 20h
kube-system metrics-server-v0.3.1-8d4c5db46-kglkg 2/2 Running 0 20h
kube-system prometheus-to-sd-44ddr 2/2 Running 0 20h
kube-system prometheus-to-sd-mls2f 2/2 Running 0 20h
kube-system stackdriver-metadata-agent-cluster-level-5747957f94-c5m8z 1/1 Running 0 20h
1
1
kium
질문자2019.11.25
kubectl -n kube-system edit deployments.apps kubernetes-dashboard
이렇게 해서 입력모드로 말씀하신대로 수정을 했는데 실제 deployment.apps 파일은 어디에 있는건지요
1
kium
질문자2019.11.25
정리를 하면 강사님이 원래 알려 주신대로 했을때도 브라우저의 화면은 나왔습니다.다만 스킵버튼이 안보였었습니다.그래서 다른 분께 알려주신대로 해 보니깐 그분하고 같은 404에러도 나오고 해서 문의를 드린겁니다.
이번에 알려 주신대로 cat명령어 그대로 복사해서 실행 한 후 프록시를 기동하고 브라우저 확인 해 보니깐 전과 같이 스킵 버튼이 보이지 않네요.
무엇이 잘못 되었을까요..ㅋㅋ 바쁘시겠지만 확인 부탁 드립니다.
쿠바네티스가 웹환경 구축보다 어려운 느낌이 드네요..ㅋ
참고로 알려주신 내용으로 실행 한 결과는 아래와 같습니다.
cat <<EOF | kubectl create -f -
> apiVersion: rbac.authorization.k8s.io/v1beta1
> kind: ClusterRoleBinding
> metadata:
> name: kubernetes-dashboard
> labels:
> k8s-app: kubernetes-dashboard
> roleRef:
> apiGroup: rbac.authorization.k8s.io
> kind: ClusterRole
> name: cluster-admin
> subjects:
> - kind: ServiceAccount
> name: kubernetes-dashboard
> namespace: kube-system
> EOF
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
1
0
일프로
지식공유자2019.11.26
아래 명령으로 다시 실행시켜 보세요.
kubectl apply -f https://raw.githubusercontent.com/kubetm/kubetm.github.io/master/sample/inflearn/appendix/gcp-kubernetes-dashboard.yaml
0
0
일프로
지식공유자2019.11.26
그럼 대시보드를 설치하실때 아래 명령으로 설치하셨나요?
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
혹시 구글 클라우드 웹 화면에서 Dashboard 설치 옵션이 있는데 그걸 통해서 설치를 하셨나요?
그리고 아래 명령어 결과를 올려주시면 상황을 파악하는데 조금 도움이 됩니다.
kubectl get pods --all-namespaces
0
일프로
지식공유자2019.11.25
그건 파일이 아니라 실제 돌아가고 있는 쿠버네티스 오브젝트입니다.
그럼 다르게 여쭤보면,
그렇게 다시 열었을때 전에 수정해서 넣었던 enable-skip-login이 그대로 있나요?
0
0
일프로
지식공유자2019.11.25
그리고 Skip 버튼은 위 내용과 별개로
접속시 인증 Skip 설정
아래 명령을 통해 수정 모드로 들어가서
kubectl -n kube-system edit deployments.apps kubernetes-dashboard
아래 내용 찾아서 --enable-skip-login
추가
-------------------------------
spec:
containers:
- args:
- --auto-generate-certificates
- --enable-skip-login
-------------------------------
이 내용을 적용 했을때 Skip 버튼이 나오는건데, 이 부분은 정상적으로 적용되었나요?
0
일프로
지식공유자2019.11.25
아 근데 그전에 한번 아래 가이드 내용을
Dashboard의 Admin권한 부여 파일 만들기
echo apiVersion: rbac.authorization.k8s.io/v1beta1>> d-role.yaml&& echo kind: ClusterRoleBinding>> d-role.yaml&& echo metadata:>> d-role.yaml&& echo name: kubernetes-dashboard>> d-role.yaml&& echo labels:>> d-role.yaml&& echo k8s-app: kubernetes-dashboard>> d-role.yaml&& echo roleRef:>> d-role.yaml&& echo apiGroup: rbac.authorization.k8s.io>> d-role.yaml&& echo kind: ClusterRole>> d-role.yaml&& echo name: cluster-admin>> d-role.yaml&& echo subjects:>> d-role.yaml&& echo - kind: ServiceAccount>> d-role.yaml&& echo name: kubernetes-dashboard>> d-role.yaml&& echo namespace: kube-system>> d-role.yaml
적용하기
kubectl apply -f d-role.yaml
이렇게 한번 해보시겠어요?
cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kube-system
EOF
해보시고 결과 확인 부탁드릴께요.
0
0
답변 19