๊ธฐ์กด์ 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
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