Kubernetes Dashboard 설치

Kubernetes Dashboard를 설치하고, API Server를 통해 외부에서 접속할 수 있도록 설정한다.


1. yaml 수정

1-1. Kubernetes Dashboard 설치 yaml 예시 다운로드

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

1-2. ClusterRole/ClusterRoleBinding 추가

외부에서 Dashboard 접속을 위해 anonymous role을 추가한다.

...
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-anonymous
rules:
- apiGroups: [""]
  resources: ["services/proxy"]
  resourceNames: ["https:kubernetes-dashboard:"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- nonResourceURLs: ["/ui", "/ui/*", "/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/*"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-anonymous
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kubernetes-dashboard-anonymous
subjects:
- kind: User
  name: system:anonymous
...

1-3. nodeSelector 수정

Dashboard를 Master Node에만 올리기 위해 설치 yaml 상 nodeSelector를 수정한다.

...
nodeSelector:
        node-role.kubernetes.io/master: ""
...

2. Kubernetes Dashboard 설치

$ kubectl create -f kubernetes_dashboard.yaml

3. 계정/RoleBinding 생성

대시보드에 접속하기 위한 service account를 생성하고, 해당 계정에 cluster-admin 권한을 부여한다.
*보안상 운영환경에서는 수정 필요

$ cat <<EOF | kubectl create -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
EOF
$ cat <<EOF | kubectl create -f -
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
EOF

4. 접속 확인

4-1. token 확인

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

4-2. url 접속

https://192.168.0.1:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
*'192.168.0.1'에 Master Node의 IP를 기입
*4-1에서 확인한 token을 입력하여 로그인

'Kubernetes' 카테고리의 다른 글

Kubernetes Persistent Volume 구성 - nfs  (0) 2020.02.12
Kubernetes 설치 및 설정  (0) 2020.02.12

+ Recent posts