部署 Kubernetes 集群后,務(wù)必安裝這些額外插件!
安裝完K8S集群后,除了安裝網(wǎng)絡(luò)插件,如calico,一般還需要安裝Metrics Server和dashboard這些插件。
效果展示: Metrics Server監(jiān)控節(jié)點(diǎn)資源

dashboard圖形化管理界面:

接下來就來詳細(xì)介紹如何部署。
1. Metrics Server介紹
簡單理解:Metrics Server = 集群資源監(jiān)控數(shù)據(jù)的采集器。
主要功能:
- 定期從各個節(jié)點(diǎn)(Node)的 Kubelet 獲取指標(biāo)數(shù)據(jù);
- 聚合這些數(shù)據(jù);
- 暴露給 Kubernetes API,供 HPA 或 kubectl top 使用。
采集的指標(biāo)主要包括:
- Pod 的 CPU、內(nèi)存使用率
- Node 的 CPU、內(nèi)存使用率
不收集持久化指標(biāo),也不保存歷史數(shù)據(jù)(那是 Prometheus 的工作)。
2. 安裝Metrics Server
(1) 下載yaml配置文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml(2) 修改鏡像倉庫并新增--kubelet-insecure-tls參數(shù)
- --kubelet-insecure-tls
image: registry.aliyuncs.com/google_containers/metrics-server:v0.8.0
--kubelet-insecure-tls:忽略節(jié)點(diǎn)證書驗證(常用于自簽證書環(huán)境)
(3) 執(zhí)行安裝
[root@k8s-master01 ~]# kubectl apply -f components.yaml(4) 查看
[root@k8s-master01 ~]# kubectl get pod -A |grep metrics
kube-system metrics-server-85df8d8df6-lgtmt 1/1 Running 0 93m(5) 查看節(jié)點(diǎn)和pod資源使用情況
[root@k8s-master01 ~]# kubectl top node
NAME CPU(cores) CPU(%) MEMORY(bytes) MEMORY(%)
k8s-master01 176m 8% 1342Mi 38%
k8s-master02 149m 7% 1082Mi 30%
k8s-master03 152m 7% 1141Mi 32%
k8s-node01 64m 3% 528Mi 15%
k8s-node02 84m 4% 586Mi 16%
[root@k8s-master01 ~]# kubectl top po -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
kube-system calico-kube-controllers-77b59b944d-29hz6 6m 21Mi
kube-system calico-node-8dkq5 29m 188Mi
kube-system calico-node-m66v6 28m 186Mi
kube-system calico-node-qwtn9 27m 187Mi
kube-system calico-node-wn8ns 33m 213Mi
.....安裝完,可以看到節(jié)點(diǎn)和Pod的CPU和內(nèi)存使用情況,后續(xù)的HPA也是基于Metrics來實現(xiàn)。
3. Dashboard介紹
Kubernetes Dashboard 是一個 Web UI 工具,讓我們無需頻繁敲命令,也能在瀏覽器中:
- 查看集群資源使用情況
- 創(chuàng)建 / 刪除 / 調(diào)整 Deployment
- 管理命名空間、Secret、ConfigMap
- 查看 Pod 日志與事件
- 管理應(yīng)用健康狀態(tài)
簡單來說,它是運(yùn)維和開發(fā)管理 K8s 集群的「圖形入口」。
4. 安裝dashboard
項目地址:https://github.com/kubernetes/dashboard
(1) 下載dashboard并修改配置
[root@k8s-master01 ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
[root@k8s-master01 ~]# vi recommended.yaml
現(xiàn)在鏡像拉取不穩(wěn)定,可以在鏡像前面加個鏡像加速器:docker.m.daocloud.io
[root@k8s-master01 ~]# grep image: recommended.yaml
image: docker.m.daocloud.io/kubernetesui/dashboard:v2.7.0
image: docker.m.daocloud.io/kubernetesui/metrics-scraper:v1.0.8(2) 執(zhí)行安裝
[root@k8s-master01 ~]# kubectl apply -f recommended.yaml(3) 查看狀態(tài)
[root@k8s-master01 ~]# kubectl get pod -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-6b99fcc9b5-blgh5 1/1 Running 0 4m43s
kubernetes-dashboard-8b5ff9b99-dbp9v 1/1 Running 0 4m43s(4) 創(chuàng)建登錄用戶
Dashboard 登錄時需要 Token 或 Kubeconfig。 我們最常用的是創(chuàng)建一個 ServiceAccount + 綁定 cluster-admin 權(quán)限。
[root@k8s-master01 ~]# cat >ServiceAccount.yaml<<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
EOF執(zhí)行配置:
[root@k8s-master01 ~]# kubectl apply -f ServiceAccount.yaml(5) 創(chuàng)建并獲取登錄token
[root@k8s-master01 ~]# kubectl -n kubernetes-dashboard create token admin-user
eyJhbGciOiJSUzI1NiIsImtpZCI6InRfNTFaSXNlWEpsRV9wLUtWNGQzWEJUZzI5SDdYS0l2M252ajNta0VyaDAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzYxMTQ2OTY5LCJpYXQiOjE3NjExNDMzNjksImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwianRpIjoiYmI0ZDc5NDEtN2U2Zi00NWExLWIyM2ItNGMwNGRhOGFjNGM3Iiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiYTk4MDAyOTgtZWEwZS00ZjYzLTliNmQtYmRhNmE0NzRjMTQ5In19LCJuYmYiOjE3NjExNDMzNjksInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.NG2MVfCEDu6mDkMdYh-SN9TFtCoPsnCL99_iVvaLpzfIeFpf72DTlwW8uME0bfq2e7CeBOHytGXjbIQbpMOlQuY5VtiWCSHWWq1pEglrSF3mIngLFelr6j6N0QXZJka6yllB_be5U44em15es38p2jiO5EtCnogcrCPadzPkfIfW9FKLPdMRunH8-ZlFvv4tz6ruXAAbHDIGUTvt7ojvGLS69TpYZ-JAM2wu_K3fzxos4IxSFd00LH6fQzMiNoWi9suPaTo9lnv0apqFC77OEw77yTYpUbkb8ChWbVM5ifI2X_zo4jhQb5pflvO4XuAFMzERqaXeG-Ps1bY57BoEtQ(6) 配置hosts登錄dashboard web
Dashboard 默認(rèn)使用 HTTPS 自簽證書。所以本地要配置一下域名解析
10.0.0.110是我的高可用集群的VIP:
cat >> /etc/hosts << EOF
10.0.0.110 cluster-endpoint
EOF在登錄的window主機(jī)也要配置hosts:
配置路徑:C:\Windows\System32\drivers\etc(7) 登錄dashboard
https://cluster-endpoint:NodePort
復(fù)制第5步獲取的token進(jìn)行登錄:

登錄成功后,就能看到完整的集群資源面板!































