Kubernetes Dashboard 관리

KubernetesBeginner
지금 연습하기

소개

Kubernetes Dashboard 는 Kubernetes 클러스터의 관리 및 모니터링을 간소화하는 웹 기반 사용자 인터페이스입니다. 애플리케이션을 배포하고 관리하며 클러스터 리소스를 보고 분석하는 직관적인 방법을 제공합니다. 이 랩에서는 Kubernetes Dashboard 를 배포하고 액세스하는 방법을 안내합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 96%입니다.학습자들로부터 97%의 긍정적인 리뷰율을 받았습니다.

Kubernetes 클러스터 시작

Kubernetes Dashboard 를 배포하기 전에 클러스터가 실행 중인지 확인하십시오. 이 랩에서는 Minikube를 사용합니다.

  1. 터미널을 열고 프로젝트 디렉토리로 이동합니다.

    cd ~/project
  2. Minikube 클러스터를 시작합니다.

    minikube start

    Minikube 는 로컬 Kubernetes 클러스터를 생성하여 Dashboard 와 같은 기능을 쉽게 테스트할 수 있도록 합니다. 설정에는 몇 분 정도 걸릴 수 있습니다.

  3. Minikube 의 상태를 확인하여 Minikube 가 실행 중인지 확인합니다.

    minikube status

    클러스터가 실행 중이지 않으면 minikube delete를 실행한 다음 minikube start를 사용하여 다시 시작하십시오.

Kubernetes Dashboard 배포

Kubernetes Dashboard 는 기본적으로 클러스터에 포함되어 있지 않습니다. 공식 배포 YAML 파일을 사용하여 배포합니다.

  1. 다음 명령을 실행하여 Dashboard 를 배포합니다.

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

    이 명령은 Deployment, Service 및 RBAC (Role-Based Access Control) 설정을 포함하여 Dashboard 에 필요한 모든 리소스를 생성합니다.

  2. Dashboard 가 실행 중인지 확인합니다.

    kubectl get pods -n kubernetes-dashboard

    kubernetes-dashboard라는 이름의 pod 를 찾고 상태가 Running인지 확인합니다.

  3. Dashboard 의 네임스페이스를 확인합니다.

    kubectl get ns | grep kubernetes-dashboard

    kubernetes-dashboard 네임스페이스가 존재해야 합니다.

Service Account 및 Role Binding 생성

기본적으로 Kubernetes Dashboard 는 접근을 제한합니다. 관리자 권한으로 로그인하려면 서비스 계정을 생성하고 이를 클러스터 역할에 바인딩해야 합니다.

  1. dashboard-admin.yaml이라는 파일을 생성합니다.

    nano ~/project/dashboard-admin.yaml
  2. 파일에 다음 내용을 추가합니다.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: kubernetes-dashboard

이 파일은 admin-user 서비스 계정을 정의하고 클러스터 전체에 대한 관리자 권한을 부여합니다.

Ctrl+X, Y를 누른 다음 Enter를 눌러 파일을 저장합니다.

  1. 구성을 적용합니다.

    kubectl apply -f dashboard-admin.yaml
  2. 서비스 계정 및 역할 바인딩을 확인합니다.

    kubectl get sa -n kubernetes-dashboard

    admin-user 서비스 계정이 나열되어야 합니다.

    kubectl get clusterrolebinding

    admin-user 클러스터 역할 바인딩이 나열되어야 합니다.

Kubernetes Dashboard 접속

이제 Dashboard 가 실행 중이고 권한이 구성되었으므로 브라우저를 통해 접근합니다.

  1. 로그인 토큰을 생성합니다.

    kubectl -n kubernetes-dashboard create token admin-user

    생성된 토큰을 복사합니다. 이 토큰은 로그인에 사용됩니다.

  2. Dashboard Service 를 편집하여 NodePort 에서 노출합니다.

    kubectl edit service -n kubernetes-dashboard kubernetes-dashboard

    spec 아래에서 type 필드를 찾고 값을 NodePort로 변경합니다. 저장하고 종료합니다.

    Editing Dashboard Service NodePort
  3. Dashboard 에 할당된 NodePort 를 찾습니다.

    kubectl get service -n kubernetes-dashboard
    NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
    dashboard-metrics-scraper   ClusterIP   10.104.164.172   <none>        8000/TCP        20m
    kubernetes-dashboard        NodePort    10.108.222.153   <none>        443:30587/TCP   20m

    PORT(S) 열 아래에 나열된 포트 번호 (예: 30587) 를 확인합니다. 이 포트는 Dashboard 에 접근하는 데 사용할 포트입니다.

  4. 노드의 IP 주소를 검색합니다.

    kubectl get node -o wide
    NAME       STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    minikube   Ready    control-plane   35m   v1.26.1   192.168.58.2   <none>        Ubuntu 20.04.5 LTS   5.15.0-56-generic   docker://20.10.23

    INTERNAL-IP 열은 노드의 IP 주소를 제공합니다.

  5. 데스크톱에서 Firefox 브라우저를 열고 다음 URL 로 이동합니다.

    https://<node-ip>:<node-port>

    <node-ip>를 노드의 IP 주소로, <node-port>를 3 단계의 포트로 바꿉니다.

    Firefox browser Kubernetes Dashboard
  6. 보안 경고가 표시되면 "Advanced"를 선택한 다음 "Accept the Risk and Continue"를 선택하여 진행합니다.

Security warning proceed screen
  1. 로그인 페이지에서 Token 옵션을 선택하고, 1 단계에서 얻은 토큰을 붙여넣기 (마우스 오른쪽 버튼 클릭) 한 다음 "Sign In"을 클릭합니다.
Kubernetes Dashboard login page

이제 Kubernetes Dashboard 에 로그인하여 클러스터 리소스를 탐색하고 워크로드를 관리할 수 있습니다.

Kubernetes Dashboard interface

요약

이 랩에서는 다음을 배웠습니다.

  1. Kubernetes Dashboard 를 로컬 클러스터에 배포합니다.
  2. 서비스 계정을 생성하고 관리자 접근을 위해 클러스터 역할에 바인딩합니다.
  3. NodePort 서비스를 사용하여 브라우저를 통해 Dashboard 에 접근합니다.

Kubernetes Dashboard 를 사용하면 애플리케이션을 시각적으로 관리하고, 리소스를 모니터링하며, 클러스터 구성을 탐색할 수 있습니다. 이 도구는 Kubernetes 운영을 단순화하며, 특히 명령줄 워크플로우에서 전환하는 초보자에게 유용합니다. Kubernetes 환경을 최대한 활용하기 위해 기능을 계속 탐색하십시오!