리셋 되지 말자

[kubernetes] 대시보드 설치 및 사용 본문

오케스트레이션

[kubernetes] 대시보드 설치 및 사용

kyeongjun-dev 2021. 2. 22. 14:57

Docker desktop 설치 후 쿠버네티스를 사용하는 법을 간단하게 기록

1. kubernetes enable

도커 데스크톱 화면에서 우측 상단의 톱니바퀴(setting)버튼을 클릭한 뒤, Kubernetes 탭으로 가서 Enable Kubernetes를 체크한뒤 우측 하단의 Apply & Restart를 눌러 쿠버네티스를 활성화 한다. 몇분 정도 소모된다.

설치가 다 되면 도커 데스크톱 창에서 왼쪽 아래부분에 아래 그림처럼 고래옆에 톱니바퀴 로고가 초록색으로 표시된다.

$ kubectl version --output yaml
clientVersion:
  buildDate: "2020-10-14T12:50:19Z"
  compiler: gc
  gitCommit: 1e11e4a2108024935ecfcb2912226cedeafd99df
  gitTreeState: clean
  gitVersion: v1.19.3
  goVersion: go1.15.2
  major: "1"
  minor: "19"
  platform: linux/amd64
serverVersion:
  buildDate: "2020-10-14T12:41:49Z"
  compiler: gc
  gitCommit: 1e11e4a2108024935ecfcb2912226cedeafd99df
  gitTreeState: clean
  gitVersion: v1.19.3
  goVersion: go1.15.2
  major: "1"
  minor: "19"
  platform: linux/amd64

설치가 잘 되었는지 version 명령어로 확인해볼 수 있습니다.

 

2. 대시보드 설치

kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/

위 공식사이트의 '대시보드 UI 접근'에 있는 방법으로 대시보드를 설치할 수 있다.(쿠버네티스 버전과 대시보드 버전의 차이가 많이나면 안되는것 같다. 아래 명령어도 업데이트가 될 수 있으니 공식 사이트의 방법대로 설치하는걸 추천)

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

원격지에 정의되어 있는 kubernetes-dashboard.yaml를 통해 대시보드를 설치한다. 

3. proxy 실행

$ kubectl proxy

// 결과
Starting to serve on 127.0.0.1:8001

proxy를 실행하여 접속가능하도록 한다. 

4. 대시보드 접속

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

위의 주소로 로컬에서 접속하면 대시보드로 접속할 수 있다.

 

5. 계정 생성

jogeum.net/22 이분 블로그를 참고하면서 진행함.(감사합니다.) 각 파일의 의미는 해당 블로그를 참고!

service-accout.yml 파일과 cluster-role-binding.yml파일을 아래와 같이 생성한다.(파일 이름은 상관 없음)

- service-account.yml

$ cat service-account.yml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

 

- cluster-role-binding.yml

$ cat 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

 

kubctl로 service-accout.yml 파일과 cluster-role-binding.yml파일을 적용한다.

$ kubectl create -f service-account.yml
$ kubectl create -f cluster-role-binding.yml

 

생성한 계정을 확인한다.(sa는 service account를 의미한다.)

$ kubectl get sa -n kube-system
NAME                                 SECRETS   AGE
admin-user                           1         47m

 

6. 계정 토큰 조회

5. 과정에서 생성한 admin-user의 cluster-admin 권한의 토큰값을 가져온다.

$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-plhpd
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: 2e9e3fcf-df41-4d4e-a181-43b8b4c29708

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1066 bytes
namespace:  11 bytes
token:      eyJhbGciO.....

 

7. 대시보드 로그인

얻은 토큰값(eyJhbGciO.....)을 입력하여 쿠버네티스 대시보에 접속한다.

 

접속에 성공하면 아래와 같이 대시보드를 확인할 수 있다.

 

8. 대시보드 삭제

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

2.번 과정에서 대시보드 설치시 사용했던 명령어에서 apply를 delete로 변경하여 수행하면 대시보드가 삭제된다.

$ kubectl get svc --all-namespaces
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  3h11m
kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   3h11m

대시보드 서비스가 사라진 것을 확인

 

Comments