dashboard

v1.10.1

๊ธฐ์กด์˜ dashboard๋ฅผ ์„ค์น˜ํ•˜๋ฉด dashboard pod๊ฐ€ ์ƒ์„ฑ๋˜์–ด ํ•ด๋‹น serviceAccount์™€ cluster๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ClusterRole์ธ cluster-admin๊ณผ ์—ฐ๊ฒฐ๋˜์–ด api server์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ด๋ฅผ proxy์„œ๋ฒ„๋กœ ์—ด์–ด ์™ธ๋ถ€์—์„œ ip์™€ port๋ฒˆํ˜ธ๋งŒ ์•Œ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์ ‘์†์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค.

# kubetm ๊ฐ€์ด๋“œ๋กœ Dashboard๋Œ€๋กœ ์„ค์น˜ํ–ˆ์„ ๊ฒฝ์šฐ ์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์‚ญ์ œ
kubectl delete -f https://kubetm.github.io/documents/appendix/kubetm-dashboard-v1.10.1.yaml

# ์ƒˆ Dashboard (2.0.0) ์„ค์น˜ - <https://github.com/kubernetes/dashboard/releases/tag/v2.0.0>
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

v2.0.0

proxy๊ฐ€ ์•„๋‹Œ ๋ฐ”๋กœ api server์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด kubeconfigํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค์–ด ํ•ด๋‹น token์„ ์ด์šฉํ•˜์—ฌ ์ ‘๊ทผํ•˜๋„๋ก ํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•œ ๋ฐฉ๋ฒ•.

v2.0.0 ์ดํ›„์—๋Š” kubernetes-metrics-scraper๋ผ๋Š” pod๊ฐ€ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑ๋˜์–ด ์ž์›์˜ ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œ๋  ์ˆ˜์žˆ๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ ์ด๋•Œ ๊ฐ™์ด clusterRole/ClusterRoleBinding(kubernetes-dashboard)๊ฐ€ ์ƒ์„ฑ๋˜์–ด serviceAccount์— ์—ฐ๊ฒฐ๋˜๊ณ  v1.10.1๊ณผ ๊ฐ™์ด cluster๋‚ด ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ clusterRole๊ณผ ClusterRoleBinding์—๋„ ์—ฐ๊ฒฐ์ด ๋œ๋‹ค.

# kubetm ๊ฐ€์ด๋“œ๋กœ Dashboard๋Œ€๋กœ ์„ค์น˜ํ–ˆ์„ ๊ฒฝ์šฐ ์•„๋ž˜ ๋ช…๋ น์œผ๋กœ ์‚ญ์ œ
kubectl delete -f https://kubetm.github.io/yamls/k8s-install/dashboard-2.3.0.yaml

# ๋‹ค์‹œ Dashboard (2.3.0) ์„ค์น˜ - <https://github.com/kubernetes/dashboard/releases/tag/v2.3.0>
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.0/aio/deploy/recommended.yaml

#ClusterRoleBinding ์ƒ์„ฑ
cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard2
  labels:
    k8s-app: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
EOF

#tokenํ™•์ธ (kubernetes-dashboard-token- ํ›„์— tab์ณ์„œ ํŒŒ์ผ ์™„์„ฑ์‹œํ‚ค๊ณ  ๋ช…๋ น์–ด ์‹คํ–‰)
kubectl -n kubernetes-dashboard get secret kubernetes-dashboard-token- \-o jsonpath='{.data.token}' | base64 --decode

#์ธ์ฆ์„œ ์„ค์น˜
grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> client.crt
grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> client.key
openssl pkcs12 -export -clcerts -inkey client.key -in client.crt -out client.p12 -name "k8s-master-30"

#์™ธ๋ถ€์—์„œ ์ ‘์†
https://192.168.0.30:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

Reference

์ธํ”„๋Ÿฐ-๊น€ํƒœ๋ฏผ๋‹˜ ๊ฐ•์˜

Last updated