ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쿠버네티스 대시보드(kubernetes dashboard)
    Kubernetes 2018. 8. 31. 09:00
    쿠버네티스는 일반적으로 커맨드라인 도구인 kubectl을 사용해서 관리합니다. 클러스터의 관리뿐만 아니라 포드의 생성/삭제/업데이트를 모두 kubectl를 통해서 할 수 있습니다. 하지만 이외에도 대시보드(dashboard, https://github.com/kubernetes/dashboard)라는 웹 UI를 제공하기도 합니다. 웹UI배포는 https://github.com/kubernetes/dashboard/blob/master/src/deploy/recommended/kubernetes-dashboard.yaml 이 파일을 사용하면 됩니다. 이 파일의 마지막에 있는 서비스 부분만 다음 처럼 수정해 줍니다. 포트를 사용해서 직접 접근가능하게 노드포트를 사용하도록 변경해줍니다.

    ---
    # ------------------- Dashboard Service ------------------- #

    kind: Service
    apiVersion: v1
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kube-system
    spec:
      ports:
        - nodePort: 30880
          port: 443
          targetPort: 8443
      selector:
        k8s-app: kubernetes-dashboard
      type: NodePort

    그런 다음 이 파일을 이용해서 다음처럼 대시보드를 실행합니다.
    kubectl apply -f kubernetes-dashboard.yaml
    그런 다음 브라우저에서 https://localhost:30880/ 로 접속하면 다음 화면을 볼 수 있습니다. 공인기관에서 발급받은 인증서가 아닌 사설 인증서를 사용하기 때문에 접속할때 브라우저에 따라서 보안경고창이 나오기도 하지만 무시하고 진행하면 됩니다. 대시보드 권한이 열려 있기 때문에 SKIP버튼을 눌러서 대시보드 화면에 들어갈수도 있습니다.



    하지만 대시보드 접근에 권한이 제한되어 있다면 다음처럼 접속하려는 계정의 token정보를 확인해서 이용할 수 있습니다. 여기서 확인한 token 정보를 로그인 화면에 입력하고 SIGN IN 버튼을 이용해서 대시보드 초기화면으로 들어갈 수 있습니다.
    $ kubectl get secrets
    NAME                  TYPE                                  DATA      AGE
    default-token-qll9j   kubernetes.io/service-account-token   3         27d
    dockersecret          kubernetes.io/dockerconfigjson        1         24d
    myuser-token-l4482    kubernetes.io/service-account-token   3         12d
    $ kubectl describe secrets default-token-qll9j
    Name:         default-token-qll9j
    Namespace:    default
    Labels:       <none>
    Annotations:  kubernetes.io/service-account.name=default
                  kubernetes.io/service-account.uid=6f166b10-945f-11e8-84cf-025000000001

    Type:  kubernetes.io/service-account-token

    Data
    ====
    ca.crt:     1025 bytes
    namespace:  7 bytes

    token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldG... 




    대시보드 화면이 보입니다. 왼쪽 메뉴에 보면 상단에는 클러스터 관련된 메뉴들이 보이고 그 밑에 네임스페이스를 선택하는 화면이 나오고 그 밑으로 해당 네임스페이스의 워크로드들을 항목별로 확인할 수 있는 메뉴들이 있습니다. 그리고 오른쪽 화면에는 현재 네임스페이스의 전체 현황을 한눈에 확인할 수 있습니다. 이 상태에서 오른쪽 상단의 CREATE 버튼을 이용해서 직접 포드를 실행하는 것도 가능하고 현재 실행중인 포드들의 설정을 수정하는 것도 가능합니다.




    대시보드에서 특정 포드를 선택해서 들어가면 오른쪽 상단에 EXEC와 LOGS가 보입니다. EXEC를 선택하면 웹상에서 실행중의 포드의 컨테이너로 직접 접속할 수 있습니다. 별다른 터미널이 필요없이 여기서 필요한 명령어들을 실행해서 컨테이너 내부 상태를 바로 확인할 수 있습니다. LOGS를 선택하면 마찬가지로 웹에서 직접 컨테이너의 로그를 확인해 볼 수 있습니다.


    참고


    댓글

Designed by Tistory.