자습서 Kubernetes 대시보드 배포(웹 UI) - Amazon EKS

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

자습서 Kubernetes 대시보드 배포(웹 UI)

이 자습서는 Amazon EKS 클러스터에 Kubernetes 대시보드를 배포하고 CPU 및 메모리 지표로 완료하는 방법을 안내합니다. 또한 대시보드에 보안 연결하여 클러스터를 보고 제어하는 데 사용할 수 있는 Amazon EKS 관리자 서비스 계정 생성에 도움이 됩니다.


            Kubernetes 대시보드

Prerequisites

이 자습서는 다음과 같이 가정합니다.

단계 1. Kubernetes 메트릭 서버 배포

Kubernetes 지표 서버는 클러스터에서 리소스 사용량 데이터의 집계자이며, 기본적으로 Amazon EKS 클러스터에 배포되어 있지 않습니다. Kubernetes 대시보드에서는 지표 서버를 사용하여 시간 경과에 따른 CPU 메모리 사용률과 같은 클러스터 지표를 수집합니다.

지표 서버를 배포하려면

  1. 다음 명령을 사용하여 지표 서버를 배포합니다.

    kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
  2. 다음 명령을 사용하여 metrics-server 배포에서 원하는 수의 포드를 실행하고 있는지 확인합니다.

    kubectl get deployment metrics-server -n kube-system

    결과:

    NAME READY UP-TO-DATE AVAILABLE AGE metrics-server 1/1 1 1 6m

단계 2. 대시보드 배포

다음 명령을 사용하여 Kubernetes 대시보드를 배포합니다.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

결과:

namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created

단계 3. 생성 eks-admin 서비스 계정 및 클러스터 역할 바인딩

기본적으로 Kubernetes 대시보드 사용자의 권한은 제한되어 있습니다. 이 단원에서는 eks-admin 서비스 계정 및 클러스터 역할 바인딩을 생성하고, 이를 사용하여 관리자 수준 권한으로 대시보드에 보안 연결할 수 있습니다. 자세한 내용은 Kubernetes 문서의 Managing Service Accounts(서비스 계정 관리)를 참조하십시오.

eks-admin 서비스 계정 및 클러스터 역할 바인딩을 생성하려면

중요

이 절차를 사용하여 생성된 예제 서비스 계정은 클러스터에 대해 완전한 cluster-admin(수퍼유저) 권한을 갖습니다. 자세한 내용은 Kubernetes 문서의 Using RBAC Authorization(RBAC 승인 사용)을 참조하십시오.

  1. 아래 텍스트가 포함된 eks-admin-service-account.yaml이라는 파일을 생성합니다. 이 매니페스트는 eks-admin이라는 서비스 계정 및 클러스터 역할 바인딩을 정의합니다.

    apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: eks-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: eks-admin namespace: kube-system
  2. 서비스 계정 및 클러스터 역할 바인딩을 클러스터에 적용합니다.

    kubectl apply -f eks-admin-service-account.yaml

    결과:

    serviceaccount "eks-admin" created clusterrolebinding.rbac.authorization.k8s.io "eks-admin" created

단계 4. 대시보드에 연결

클러스터에 Kubernetes 대시보드가 배포되었고, 클러스터를 보고 제어하는 데 사용할 수 있는 관리자 서비스 계정을 가졌기 때문에 이제 이 서비스 계정을 사용하여 대시보드에 연결할 수 있습니다.

Kubernetes 대시보드에 연결하려면

  1. eks-admin 서비스 계정에 대한 인증 토큰을 조회합니다. 복사 <authentication_token> 출력 값. 이 토큰을 사용하여 대시보드에 연결합니다.

    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')

    결과:

    Name: eks-admin-token-b5zv4 Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=eks-admin kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1025 bytes namespace: 11 bytes token: <authentication_token>
  2. 시작 kubectl proxy .

    kubectl proxy
  3. 대시보드 엔드포인트에 액세스하려면 웹 브라우저에서 다음 링크를 엽니다. http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login

  4. 선택 토큰, 붙여넣기 <authentication_token> 이전 명령에서 토큰 필드를 입력하고 로그인.

    
                        Kubernetes token auth
    참고

    대시보드에 CPU 및 메모리 지표가 표시되기까지 몇 분이 걸릴 수 있습니다.

단계 5. 다음 단계

Kubernetes 클러스터 대시보드에 연결한 이후 eks-admin 서비스 계정을 사용하여 클러스터를 보고 제어할 수 있습니다. 대시보드 사용에 대한 자세한 내용은 GitHub 프로젝트 문서를 참조하십시오.