Always-Try(정보보안 및 일상)

EKS Starter - 6. 쿠버네티스 Dashboard 본문

AWS

EKS Starter - 6. 쿠버네티스 Dashboard

Always-Try 2021. 9. 5. 18:04
https://www.udemy.com/course/amazon-eks-starter-kubernetes-on-aws/ 참고

 

쿠버네티스에 대한 상세한 현황을 GUI로 보기 위해 Kubernetes Dashboard를 사용해보자. Dashboard에서 명령을 실행할수 있다. 관련 github는 다음과 같다. https://github.com/kubernetes/dashboard

 

GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

General-purpose web UI for Kubernetes clusters. Contribute to kubernetes/dashboard development by creating an account on GitHub.

github.com

 

Kubernetes Dashboard의 구성은 대략 다음과 같다. (참고로 heapster 대신 metrics-server를 사용한ㄷ. 그림은 대략 참고만)

https://docs.dennisokeeffe.com/kubernetes/eks-kubernetes-dashboard


먼저 클러스터 정보들을 수집하기 위한 Metrics Server를 설치해보자.

sudo install jq curl

 

DOWNLOAD_URL=$(curl --silent "https://api.github.com/repos/kubernetes-sigs/metrics-server/releases/latest" | jq -r .tarball_url) 
DOWNLOAD_VERSION=$(grep -o '[^/v]*$' <<< $DOWNLOAD_URL)
curl -Ls $DOWNLOAD_URL -o metrics-server-$DOWNLOAD_VERSION.tar.gz
mkdir metrics-server-$DOWNLOAD_VERSION
tar -xzf metrics-server-$DOWNLOAD_VERSION.tar.gz --directory metrics-server-$DOWNLOAD_VERSION --strip-components 1

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

설치되었는지 확인하기 위해 아래와 같이 kube-system 네임스페이스에서 metrics-server 검색

kubectl get deployment metrics-server -n kube-system

 

 

 

이제 dashboard를 배포하고 관리자 서비스 계정을 만들어보자.

우선 다음 사이트에서서 최신 버전의 dashboard 버전 및 호환 가능한 k8s 버전을 확인해보자. https://github.com/kubernetes/dashboard/releases

 

최신 버전의 dashboard를 적용해보자.

export DASHBOARD_RELEASE=v2.3.1

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/$DASHBOARD_RELEASE/aio/deploy/recommended.yaml

 

이제 dashboard 관리자 계정을 생성하자.

vi admin-service-account.yaml

kubectl apply -f admin-service-account.yaml

 

이제 생성한 계정으로 dashboard에 접근해보자. 그러기 위해 먼저 생성한 계정의 Security Token을 얻어야 한다.

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

 

그리고 대시보드에 접근하기 위해 kube proxy를 실행시키자.

kubectl proxy

이후 kubectl proxy를 실행시킨 서버에서 아래 URL로 대시보드에 접속 할 수 있다.

 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

 

필자는 리눅스에 kubectl을 설치해서 사용중이고 해당 리눅스에 GUI 환경을 설치하지 않았으므로 접근할 수 없다. 혹시나해서 외부에서 공인IP로 접근하면 안되는지 찾아봤지만 공식 쿠버네티스 홈페이지에 'UI는 커맨드가 실행된 머신에서오직접근 가능'  이라고 나와있는 것을 봐서는 불가능한 것으로 보인다. 

 

대시보드에서는 클러스터, 네임스페이스, 노드, 파드, deployment 등등 다양한 정보를 확인할 수 있으며 오토스케일링 및 deploymen 도 다 가능하다.

 

끝.

 

 

 

 

 

 

 

 

 

 

 

 

Comments