Kubernetes Dashboard UI 部署安装
K8S 集群环境: Ubuntu 24 / K8S 1.28.2
1. 推荐使用helm 安装Kubernetes Dashboard
sudo snap install helm --classic
2. 部署Kubernetes Dashboard
# Add kubernetes-dashboard repository
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# Deploy a Helm Release named "kubernetes-dashboard" using the kubernetes-dashboard chart
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
3. 查看Pod 启动状态,如果pending状态,查看events确认是否镜像拉取问题,可手动拉取kong:3.8
kubectl --namespace=kubernetes-dashboard get pods
ctr i pull --all-platforms xxxxx.xuanyuan.dev/bitnami/kong:3.8
再次确认Pod 启动状态
root@k8s-master:~/manifects# kubectl --namespace=kubernetes-dashboard get pods
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-api-5d7fbc9746-h2ssw 1/1 Running 0 68m
kubernetes-dashboard-auth-7896497d46-9mjc7 1/1 Running 0 68m
kubernetes-dashboard-kong-6bf7cb4d8c-htl4z 1/1 Running 0 68m
kubernetes-dashboard-metrics-scraper-79ddb8cd78-4dg6f 1/1 Running 0 68m
kubernetes-dashboard-web-5c84bb867f-twl9t 1/1 Running 0 68m
4. 查看kong proxy Service 端口
root@k8s-master:~/manifects# kubectl --namespace=kubernetes-dashboard get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard kubernetes-dashboard-api ClusterIP 10.97.5.78 <none> 8000/TCP 50m
kubernetes-dashboard kubernetes-dashboard-auth ClusterIP 10.107.21.211 <none> 8000/TCP 50m
kubernetes-dashboard kubernetes-dashboard-kong-proxy ClusterIP 10.98.134.37 <none> 443/TCP 50m
kubernetes-dashboard kubernetes-dashboard-metrics-scraper ClusterIP 10.110.95.33 <none> 8000/TCP 50m
kubernetes-dashboard kubernetes-dashboard-web ClusterIP 10.97.129.119 <none> 8000/TCP 50m
默认为ClusterIP, 需手动更新为NodePort 以便节点外部访问
kubectl --namespace=kubernetes-dashboard edit service kubernetes-dashboard-kong-proxy
5. 再次查看service,已经更改为NodePort
root@k8s-master:~/manifects# kubectl --namespace=kubernetes-dashboard get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard-api ClusterIP 10.97.5.78 <none> 8000/TCP 72m
kubernetes-dashboard-auth ClusterIP 10.107.21.211 <none> 8000/TCP 72m
kubernetes-dashboard-kong-proxy NodePort 10.98.134.37 <none> 443:30118/TCP 72m
kubernetes-dashboard-metrics-scraper ClusterIP 10.110.95.33 <none> 8000/TCP 72m
kubernetes-dashboard-web ClusterIP 10.97.129.119 <none> 8000/TCP 72m
6. 创建User 和Role
vim k8s-dashboard-sa.yamlkubectl apply -f k8s-dashboard-sa.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard
7. 获取token
root@k8s-master:~/manifects# kubectl -n kubernetes-dashboard create token admin-user
eyJhbGciOiJSUzI1NiIsImtpZCI6Ikx4eVpYWWpUcXBna28zS3AtcWozaUZZUU1GbW42QWNiN1lXM1Y0ZllTX2MifQ.
8. 用上一步获取的token进行登录