kubernetes 대시보드 v2.0.0 배포

7181 단어 OSSkubernetes

개요



Mac용 Docker에서 Kubernetes를 사용하기 위해 샘플로 kubernetes/dashboard(※)을 배포해 보았습니다.

※dashboard: k8s로 관리하고 있는 리소스의 상황을 그래프나 표로 확인하거나, pod의 관리나 로그의 확인등을 GUI 조작으로 이용하거나 할 수 있습니다.

필요한 것을 확인


  • Docker for Mac
  • Kubernetes를 설치하고 설치할 수 있습니다.

  • kubectl
  • API 경유로 Kubenetes 를 조작하기 위한 클라이언트 툴입니다.

  • $ docker -v
    Docker version 19.03.4, build 9013bf5
    
    $ kubectl version --short --client
    Client Version: v1.14.7
    

    Docker for Desktop용 Kubernetes 사용



    Desktop에서 Docker 아이콘을 선택하고 Preferences ⌘를 클릭합니다.


    오른쪽에 있는 Kubernetes를 선택하고 Show system containers를 선택하고 Apply를 클릭합니다.



    시작 확인 및 전환



    컨텍스트 목록에서 docker-for-desktop이 있는지 확인합니다.
    $ kubectl config get-contexts
    CURRENT   NAME                 CLUSTER          AUTHINFO         NAMESPACE
    *         docker-desktop       docker-desktop   docker-desktop   
              docker-for-desktop   docker-desktop   docker-desktop   
    

    액세스 대상을 docker-for-desktop으로 전환합니다.
    $ kubectl config use-context docker-for-desktop
    Switched to context "docker-for-desktop".
    

    시작된 단계에서 작동하는 pod를 확인합니다.
    $ kubectl get po --all-namespaces
    NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE
    docker        compose-6c67d745f6-cv5zs                 1/1     Running   0          65m
    docker        compose-api-57ff65b8c7-nl4dv             1/1     Running   0          65m
    kube-system   coredns-584795fc57-92qm4                 1/1     Running   0          66m
    kube-system   coredns-584795fc57-nvkc9                 1/1     Running   0          66m
    kube-system   etcd-docker-desktop                      1/1     Running   0          65m
    kube-system   kube-apiserver-docker-desktop            1/1     Running   0          65m
    kube-system   kube-controller-manager-docker-desktop   1/1     Running   0          65m
    kube-system   kube-proxy-bkjgc                         1/1     Running   0          66m
    kube-system   kube-scheduler-docker-desktop            1/1     Running   0          65m
    

    kubernetes dashboard 배포



    환경이 잘 되었기 때문에
    GUI에서 kubernetes 클러스터를 관리할 수 있는 kubernetes dashboard를 배포해 봅니다.
    GitHub에 소스 코드가 있으므로 README대로 진행합니다.
    htps : // 기주 b. 이 m/쿠베 r 네 s/다 sh보아 rd/bぉb/마 s r/레아 D메. md
    포드를 만듭니다.
    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
    

    Namespace에 kubernetes-dashboard를 지정하여 실행이 있는지 확인합니다.
    ※Kubernetes 2.0계에서, 대시보드의 Namespace가 kube-system 에서 kubernetes-dashboard 로 이동했습니다.
    $ kubectl get deploy,po,svc -n kubernetes-dashboard
    NAME                                              READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.extensions/dashboard-metrics-scraper   1/1     1            1           27m
    deployment.extensions/kubernetes-dashboard        1/1     1            1           27m
    
    NAME                                             READY   STATUS    RESTARTS   AGE
    pod/dashboard-metrics-scraper-69fcc6d9df-dglbd   1/1     Running   0          27m
    pod/kubernetes-dashboard-6d75768647-d69sk        1/1     Running   0          27m
    
    NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/dashboard-metrics-scraper   ClusterIP   10.100.193.116   <none>        8000/TCP   27m
    service/kubernetes-dashboard        ClusterIP   10.109.69.115    <none>        443/TCP    27m
    
    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001
    

    아래 URL에서 대시보드에 액세스해 봅니다.
    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login


    토큰을 얻는 방법



    Kubernetes 1.8 계에서 인증 시스템이 들어 있어 인증을 통과하지 않으면 WebUI를 이용할 수 없게 되었습니다.
    네임 스페이스에 kubernetes-dashboard를 지정하여 kubernetes-dashboard-token-로 시작하는 secret을 찾습니다.
    $ kubectl -n kubernetes-dashboard get secret
    NAME                               TYPE                                  DATA   AGE
    default-token-d69sj                kubernetes.io/service-account-token   3      32m
    kubernetes-dashboard-certs         Opaque                                0      32m
    kubernetes-dashboard-csrf          Opaque                                1      32m
    kubernetes-dashboard-key-holder    Opaque                                2      32m
    kubernetes-dashboard-token-lcnqw   kubernetes.io/service-account-token   3      32m
    

    default-token 권한으로 로그인하기 위해 token을 가져옵니다.
    $ kubectl -n kubernetes-dashboard describe secret kubernetes-dashboard-token-lcnqw
    Name:         kubernetes-dashboard-token-lcnqw
    Namespace:    kubernetes-dashboard
    Labels:       <none>
    Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard
                  kubernetes.io/service-account.uid: c2536c20-2541-11ea-88b0-025000000001
    
    Type:  kubernetes.io/service-account-token
    
    Data
    ====
    token:      eyJhbGciO********************************************
    ~~~ 略 ~~~
    

    위의
    token:
    이후를 복사하십시오.

    로그인해 봅니다.


    할 수 있어요 👏

    좋은 웹페이지 즐겨찾기