Kubernetes Dashboard
설치
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ \
&& helm repo update kubernetes-dashboard
helm search repo kubernetes-dashboard -l | head -n 10
mkdir -p monitoring/kubernetes_dashboard/helm
helm show values kubernetes-dashboard/kubernetes-dashboard \
--version 5.4.1 \
> monitoring/kubernetes_dashboard/helm/values.yaml
monitoring/kubernetes_dashboard/helm/values.yaml
extraArgs:
- --token-ttl=86400
metricsScraper:
enabled: true
helm upgrade kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \
--install \
--version 5.4.1 \
-n monitoring \
-f monitoring/kubernetes_dashboard/helm/values.yaml
rbac/admin-sa.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-sa
namespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-crb
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-sa
namespace: monitoring
kubectl apply -f rbac/admin-sa.yaml
Removal
kubectl delete -f rbac/admin-sa.yaml
helm uninstall -n monitoring kubernetes-dashboard
Service
Token
kubectl -n monitoring get secret $(kubectl -n monitoring get sa/admin-sa -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
토큰을 출력해서 사용하는 경우 위 명령어를 매번 실행하고, config파일에 저장해놓고 사용하려는 경우 아래 명령어를 통해 config파일에 토큰을 저장해두면 됩니다.
kubectl config set-credentials $(kubectl config current-context) --token=$(kubectl -n monitoring get secret $(kubectl -n monitoring get sa/admin-sa -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}")
경고
한 config 파일에 여러 context가 있는 경우 config파일로 로그인할 수 없습니다. 한 context에 한 config 파일로 만들고 KUBECONFIG
환경변수로 여러 config 파일을 묶어서 사용하는 것이 좋습니다.
Proxy
kubectl proxy
Port forward
kubectl port-forward -n monitoring svc/kubernetes-dashboard 8002:443