(一)簡介
K8s Dashboard是Kubernetes提供的一種基于Web的用戶界面工具,用于可視化地管理和監控Kubernetes集群
主要功能:
-
資源查看與管理:
查看Kubernetes集群中的各種資源,如節點、Pod、服務、部署等。
對資源進行創建、更新、刪除等操作,例如擴展部署、發起滾動更新、重新啟動Pod或使用部署向導部署新的應用程序。 -
實時狀態監控:
顯示關于集群和應用的實時狀態信息,包括Pods、Deployments、Services等的運行狀態。
查看容器的日志和事件,有助于快速定位問題。 -
資源監控與度量:
提供了可視化的工具來查看集群的度量和監控數據,如CPU、內存和網絡使用狀況等。 -
安全性與訪問控制:
支持Kubernetes的RBAC(基于角色的訪問控制),允許對不同用戶的訪問權限進行控制。
(二)安裝前準備
官網建議通過helm安裝,但是當前helm安裝方式只能指定到版本release 7.11.1版本,故采用yaml方式進行安裝
2.1 下載yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
配置NodePort: NodePort類型的 Service 適合用于開發和測試環境,允許外部流量直接訪問集群內的服務。
---kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443targetPort: 8443nodePort: 30002 #添加內容type: NodePort #添加內容selector:k8s-app: kubernetes-dashboard
注意要將yaml文件里的imagePullPolicy:Always 注掉,否則從國內拉取的鏡像無法使用
2.2 準備相關鏡像
kubernetesui/metrics-scraper:v1.0.8
kubernetesui/dashboard:v2.7.0
-
國內拉取方式
ctr -n k8s.io i pull -k docker.m.daocloud.io/kubernetesui/dashboard:v2.7.0
ctr -n k8s.io i pull -k docker.m.daocloud.io/kubernetesui/metrics-scraper:v1.0.8
-
重新標記視為原始鏡像
ctr -n k8s.io images tag docker.m.daocloud.io/kubernetesui/dashboard:v2.7.0 docker.io/kubernetesui/dashboard:v2.7.0
ctr -n k8s.io images tag docker.m.daocloud.io/kubernetesui/metrics-scraper:v1.0.8 docker.io/kubernetesui/metrics-scraper:v1.0.8
(三)進行安裝
kubectl apply -f recommended.yaml
檢查pod狀態
kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-658d97c59c-bx9mx 1/1 Running 0 14h
kube-system calico-node-k8wpd 1/1 Running 0 14h
kube-system calico-node-lchjc 1/1 Running 0 14h
kube-system calico-node-vdpqf 1/1 Running 0 14h
kube-system coredns-66f779496c-qhp6p 1/1 Running 0 17h
kube-system coredns-66f779496c-txxql 1/1 Running 0 17h
kube-system etcd-m1 1/1 Running 0 17h
kube-system kube-apiserver-m1 1/1 Running 0 17h
kube-system kube-controller-manager-m1 1/1 Running 0 17h
kube-system kube-proxy-5gg2p 1/1 Running 0 16h
kube-system kube-proxy-ctw2r 1/1 Running 0 16h
kube-system kube-proxy-zlbb7 1/1 Running 0 17h
kube-system kube-scheduler-m1 1/1 Running 0 17h
kubernetes-dashboard dashboard-metrics-scraper-5657497c4c-rn6cx 1/1 Running 0 4m27s
kubernetes-dashboard kubernetes-dashboard-5b749d9495-6lg7v 1/1 Running 0 4m27s
(四)創建用戶
wget https://raw.githubusercontent.com/cby-chen/Kubernetes/main/yaml/dashboard-user.yaml
kubectl apply -f dashboard-user.yaml
創建token
kubectl -n kubernetes-dashboard create token admin-user
eyJhbGciOiJSUzI1NiIsImtpZCI6InphYTVNNHpQejBFelFQSzNfLS1wYVUzbmRRTUVYY3BWeEdKbWxGRklFZlUifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzQ0MDExNjAyLCJpYXQiOjE3NDQwMDgwMDIsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiMmU0NDZlZTktMjdhNC00NWFjLWFjNmMtNmMyMjQ3MWZjZTdhIn19LCJuYmYiOjE3NDQwMDgwMDIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.NkvJMMIDwWTpq3OnWjld7fEin9DUvXP8-wdmPHgYjKSBbV8qM7BKahZRk0H_pTPurbo_kXEB7_TLnv1Hl_S6eH90DAdPSLCW3px4uSSvLFU0tZ9rYRQWZa6BfMnQTz7KWzAllKq4Is31UFKEO53KjAVu0cRPhIQXPeSF2N0uhrt-JPl_wgk3bvdTxJsBRvSKUVQ_khdNLI8GMAxj7qYIDd8gCYbbJi5Ct62pNPwjnDQhBg9wzAejKJsPHspIcpNxPSIJfWrDASDuBBkF0djT7aD8v1fQ7QCYkJ9LN6PFj8g7aEglkioF_6TVbQDsK5grFfhZC323JwZhMC34JJhJYg
(五)網頁訪問
通過暴露的端口30002訪問,輸入token即可進入管理頁面
https://localhost:30002