• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

--enable-skip-login 에 대한 질문

19.11.13 00:27 작성 조회수 375

1

안녕하세요. https://github.com/taemin77/k8s-examples/blob/master/beginners/7-1-Appendix-Installation-Case3.md

에서처럼

$ kubectl -n kube-system edit deployments.apps kubernetes-dashboard

사용하여 --enable-skip-login 를 추가하려 하였는데요.

아래 사진을 보시면 문서에서 안내된 내용이 없어서 어디에  --enable-skip-login 를 추가해야 할지 알기가 어려워서 질문을 드리게 되었습니다.

문서에서 시도하려 했던 부분은 아래 사진과 같습니다.

읽어주셔서 감사합니다.

답변 9

·

답변을 작성해보세요.

1

with_all님의 프로필

with_all

질문자

2019.11.17

답변해 주셔서 감사합니다. 질문을 드리고 모두 삭제를 했는데 하나씩 다시 설치를 해보겠습니다. 

1

with_all님의 프로필

with_all

질문자

2019.11.15

안녕하세요. 말씀하신대로 1) 삭제를 한 후에 2) 대시 보드 파일을 직접 다운로드 하고 3) 파일을 찾아서 말씀하신대로 수정을 한 후에 4) 대시보드를 설치하고 5) kubectl proxy를 한 결과 아래와 같은 응답을 확인하였습니다.

$ kubectl proxy

Starting to serve on 127.0.0.1:8001

그런데  

http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

에 접속을 하면 아래와 같은 응답을 만나게 됩니다.

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "services \"kubernetes-dashboard\" not found",
  "reason": "NotFound",
  "details": {
    "name": "kubernetes-dashboard",
    "kind": "services"
  },
  "code": 404
}

그리고 

http://127.0.0.1:8001/

에 접속을 하면 아래와 같은 응답을 만나게 되구요, 

{
  "paths": [
    "/api",
    "/api/v1",
    "/apis",
    "/apis/",
    "/apis/admissionregistration.k8s.io",
    "/apis/admissionregistration.k8s.io/v1beta1",
    "/apis/apiextensions.k8s.io",
    "/apis/apiextensions.k8s.io/v1beta1",
    "/apis/apiregistration.k8s.io",
    "/apis/apiregistration.k8s.io/v1",
    "/apis/apiregistration.k8s.io/v1beta1",
    "/apis/apps",
    "/apis/apps/v1",
    "/apis/apps/v1beta1",
    "/apis/apps/v1beta2",
    "/apis/authentication.k8s.io",
    "/apis/authentication.k8s.io/v1",
    "/apis/authentication.k8s.io/v1beta1",
    "/apis/authorization.k8s.io",
    "/apis/authorization.k8s.io/v1",
    "/apis/authorization.k8s.io/v1beta1",
    "/apis/autoscaling",
    "/apis/autoscaling/v1",
    "/apis/autoscaling/v2beta1",
    "/apis/batch",
    "/apis/batch/v1",
    "/apis/batch/v1beta1",
    "/apis/certificates.k8s.io",
    "/apis/certificates.k8s.io/v1beta1",
    "/apis/cloud.google.com",
    "/apis/cloud.google.com/v1beta1",
    "/apis/coordination.k8s.io",
    "/apis/coordination.k8s.io/v1",
    "/apis/coordination.k8s.io/v1beta1",
    "/apis/extensions",
    "/apis/extensions/v1beta1",
    "/apis/metrics.k8s.io",
    "/apis/metrics.k8s.io/v1beta1",
    "/apis/networking.gke.io",
    "/apis/networking.gke.io/v1beta1",
    "/apis/networking.k8s.io",
    "/apis/networking.k8s.io/v1",
    "/apis/networking.k8s.io/v1beta1",
    "/apis/node.k8s.io",
    "/apis/node.k8s.io/v1beta1",
    "/apis/nodemanagement.gke.io",
    "/apis/nodemanagement.gke.io/v1alpha1",
    "/apis/policy",
    "/apis/policy/v1beta1",
    "/apis/rbac.authorization.k8s.io",
    "/apis/rbac.authorization.k8s.io/v1",
    "/apis/rbac.authorization.k8s.io/v1beta1",
    "/apis/scalingpolicy.kope.io",
    "/apis/scalingpolicy.kope.io/v1alpha1",
    "/apis/scheduling.k8s.io",
    "/apis/scheduling.k8s.io/v1",
    "/apis/scheduling.k8s.io/v1beta1",
    "/apis/storage.k8s.io",
    "/apis/storage.k8s.io/v1",
    "/apis/storage.k8s.io/v1beta1",
    "/healthz",
    "/healthz/SSH Tunnel Check",
    "/healthz/autoregister-completion",
    "/healthz/etcd",
    "/healthz/log",
    "/healthz/ping",
    "/healthz/poststarthook/apiservice-openapi-controller",
    "/healthz/poststarthook/apiservice-registration-controller",
    "/healthz/poststarthook/apiservice-status-available-controller",
    "/healthz/poststarthook/bootstrap-controller",
    "/healthz/poststarthook/ca-registration",
    "/healthz/poststarthook/crd-informer-synced",
    "/healthz/poststarthook/generic-apiserver-start-informers",
    "/healthz/poststarthook/kube-apiserver-autoregistration",
    "/healthz/poststarthook/rbac/bootstrap-roles",
    "/healthz/poststarthook/scheduling/bootstrap-system-priority-classes",
    "/healthz/poststarthook/start-apiextensions-controllers",
    "/healthz/poststarthook/start-apiextensions-informers",
    "/healthz/poststarthook/start-kube-aggregator-informers",
    "/healthz/poststarthook/start-kube-apiserver-admission-initializer",
    "/logs",
    "/metrics",
    "/openapi/v2",
    "/version"
  ]
}

정상적인 작동이 안 되는 것 같은데, 질문드리고 싶은 점은 혹시 다른 힌트가 있을런지요.

감사합니다.

1

with_all님의 프로필

with_all

질문자

2019.11.13

안녕하세요.  저는 다음과 같은 방법을 통해 설치를 하였는데요. 혹시 설치를 직접 한 게 아닌 것인지요?

제가 처음 설치를 하다보니 실수를 하여 번거롭게 해드린 것은 아닌지 걱정이 됩니다. 혹시 제가 잘못 설치한 것이라면 별도의 삭제 절차없이 설치를 다시 하면 될까요?

https://cloud.google.com/sdk/docs/quickstart-macos

에서 SDK 다운로드 및 설치.

$ gcloud components update

$ gcloud components install kubectl

$ gcloud container clusters get-credentials k8s-cluster --zone asia-east1-a --project august-cirrus-258814

$ kubectl get nodes

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml $

1

with_all님의 프로필

with_all

질문자

2019.11.13

안녕하세요. 말씀하신 대로 Depoloyment 내용이 짤린 것을 확인하였습니다. (... 죄송합니다.) 

그런데 --enable-skip-login 을 추가한 후에 저장을 하려고 하면 다음과 같은 메시지가 나타납니다.

```

error: deployments.apps "kubernetes-dashboard" is invalid

A copy of your changes has been stored to "/var/folders/j5/qdp1mcl532j_5x4rzg3c50gw0000gn/T/kubectl-edit-zc2fv.yaml"

error: Edit cancelled, no valid changes were saved.

```

  https://github.com/kubernetes/kubectl/issues/677  에  따르면 재설치를 해야 한다고 하는데요.

만일 재설치를 해야 한다면 

$ gcloud components update

$ gcloud components install kubectl 

이 부분부터 다시 하면 되는 것일까요? 혹시 비슷한 상황을 경험하신적이 있으시다면 조언을 해주실 수 있을까요?

저도 해결책을 더 찾아보려 하는데, 제가 잘 모르는 상태에서 시도하다가 오히려 문제를 더 키울수도 있어 조언을 구하려 합니다.

읽어주셔서 감사합니다.

0

네 하나씩 차근차근 해보세요. 안되는 부분 있으면 또 말씀해주시고요

0

먼저 아래 명령으로 dashboard를 만드는 커맨드를 날렸을때 에러 없이 자원들이 다 Created되었다는 메세지가 나왔나요?

kubectl apply -f kubernetes-dashboard.yaml

그리고 아래 명령어로 현재 문제 중인 Pod가 없는지 한번 확인이 필요하고요.

kubectl get pods --all-namespaces

0

아, 아닙니다. 클라우드 웹상에서 옵션으로도 대시보드를 설치할 수 있는데 그렇게 하면 수정이 안되는 경우가 있어서 질문드린거고요.

직접 대시보드를 설치하신게 맞네요. 

근데 해당 문제는 딱히 다시 설치한다고 해결될지는 저도 잘모르겠습니다.

대신 위에 한번 설명드리긴 했는데, 아래처럼 설치해보시는게 어떨런지요?

일단 기존에 설치된 대시보드를 아래 명령으로 삭제하시고요.

kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

아래 명령으로 대시 보드 파일을 직접 다운로드 하시고 

curl -O https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

다운로드 된 파일을 열어 보시면 (kubernetes-dashboard.yaml  파일)

#--- Dashboard Deployement ---# 라는 부분에서 해당 위치 아래 내용 추가한 후

-------------------------------
    spec:
      containers:
      - args:
        - --auto-generate-certificates
        - --enable-skip-login
-------------------------------

그리고 제일 하단에 아래 내용도 추가합니다. (Dahboard에 admin 권한받기)


--- # ------------------- Admin ClusterRoleBinding ------------------- #

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

그리고 아래 명령으로 대시보드를 설치하고요.

kubectl apply -f kubernetes-dashboard.yaml

proxy 띄우고

kubectl proxy

접속해보세요

http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/.

0

혹시 대시보드 설치를 직접 한게 아니라 클라우드에서 제공하는 옵션으로 자동설치 하셨나요?

0

안녕하세요.

해당 명령과 처음 부분 내용은 맞는데, | (하이픈} 이후로 내용이 없는거 보니 Depoloyment 내용이 짤린거 같은데요?

전 Mac이 아니라서 확인해보기가 쉽지 않네요..ㅜ

다른 방법을 말씀드리면 

대시보드를 설치하실때 

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

이 명령으로 바로 설치하시마시고

curl -O https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

이 명령으로 해당 파일을 다운로드 받으면 kubernetes-dashboard.yaml 파일이 있을꺼예요.

vi kubernetes-dashboard.yaml 로 파일을 열어보면

길게 많은 내용이 있는데 #--- Dashboard Deployement ---# 라는 부분에서 해당 위치 찾아서 추가한 후

kubectl apply -f kubernetes-dashboard.yaml

명령으로 설치하시면 됩니다.

감사합니다.