오늘의 인기 글
최근 글
최근 댓글
Today
Total
12-25 13:31
관리 메뉴

우노

[Kubernetes] MacOS Kubernetes 및 Dashboard 설치 본문

DevOps/Kubernetes

[Kubernetes] MacOS Kubernetes 및 Dashboard 설치

운호(Noah) 2022. 2. 20. 14:25

진행 순서

  • Docker Desktop for Mac 설치
  • Docker Desktop Kubernetes 사용 설정
  • Kubectl 설치
  • Kubernetes Dashboard 설치
  • 계정 생성
  • 계정 토근 조회
  • 계정 토큰을 통해 Kubernetes Dashboard 로그인

Docker Desktop for Mac 설치

Docker Desktop Kubernetes 사용 설정

  • Docker Desktop 에 접근한 뒤, 우측 상단의 톱니바퀴 버튼을 통해 Preferences 로 접근합니다.

  • 이후, 좌측 하단의 Kubernetes 를 클릭한 뒤, Enable Kubernetes 를 체크하고

  • 우측 하단의 Apply & Restart 버튼을 클릭합니다.

Kubectl 설치

  • Kubectl 은 Kubernetes Cluster manage tool 로,

  • K8S Cluster 를 관리할 수 있는 커맨드라인 툴을 의미합니다.

  • Kubectl 는 다양한 방법으로 설치할 수 있으며,

  • 해당 포스트에서는 MacOS 의 brew 패키지 관리자를 사용해 설치하겠습니다.

      brew install kubectl

Kubernetes Dashboard 설치

  • Kubernetes Dashboard 는, 웹 기반 쿠버네티스 유저 인터페이스입니다.

  • Dashboard 를 통해 컨테이너화 된 애플리케이션을 Kubernetes Cluster 에 배포할 수 있고,

  • 컨테이너화 된 애플리케이션을 트러블슈팅할 수 있으며,

  • Cluster resource 들을 관리할 수 있습니다.

  • Kubernetes Dashboard 는 아래와 같이 설치할 수 있습니다.

      # 대시보드 설치
      kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
    
      # 대시보드 실행
      kubectl proxy
    
      # 아래 URL 을 브라우저 창에 입력합니다.
      http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
  • 정상적으로 접근한다면, 아래와 같은 Login 화면을 확인할 수 있습니다.

    • 하지만, 아직 계정을 생성 하지 않았기 때문에 로그인을 할 수는 없습니다.

계정 생성

  • admin-user 계정 생성용 yaml 파일 작성

      vi service-account.yml
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: admin-user
        namespace: kube-system
    • kind : ServiceAccount
      • 쿠버네티스에서 관리하는 계정을 생성한다는 의미입니다.
    • name : admin-user
      • 계정명을 의미합니다.
    • namespace : kube-system
      • 대시보드가 설치되어 있는 kube-system 에서 사용할 계정을 생성한다는 의미입니다.
  • admin-user 권한 부여용 yaml 파일 작성

      vi cluster-role-binding.yml
      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: kube-system
    • name: cluster-admin
      • 모든 클러스터에 접근 할 수 있는 권한을 의미합니다.
  • 생성한 파일을 사용해, 계정을 생성하고 권한을 부여합니다.

      kubectl create -f service-account.yml
      kubectl create -f cluster-role-binding.yml
  • 계정 생성 확인

      kubectl get sa -n kube-system
    • sa : service account 를 의미합니다.

계정 토근 조회

  • 이제, 생성한 계정에 지정된 토큰을 가지고옵니다.

      kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
    • 토큰은, 내가 admin-user 계정이며 cluster-admin 권한 롤을 가지고 있다는 것을 의미합니다.
    • 해당 토큰 값을 통해, 내가 유효한 자격을 소유하고 있다는 것을 증명할 수 있게 됩니다.

계정 토큰을 통해 Kubernetes Dashboard 로그인

  • Kubernetes Dashboard 로그인 창에서 토큰을 선택하고 상단의 토큰을 입력해 로그인을 진행하면

  • 현재 쿠버네티스에 정의되어 있는 모든 자원을 확인할 수 있게 됩니다.

참고

Comments