root@docker03:~# kubectl top pod
error: Metrics API not available
需要在k8s集群安装metrics-server
1.下载metrics-server
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics-server-components.yaml
2.更改为阿里云镜像地址
sed -i 's/k8s.gcr.io\/metrics-server/registry.cn-hangzhou.aliyuncs.com\/google_containers/g' metrics-server-components.yaml
3.应用metrics-server-components.yaml
kubectl apply -f metrics-server-components.yaml
kubectl get pods -A | grep metrics
kube-system kube-state-metrics-6fb988-25frl 1/1 Running 1 192d
kube-system metrics-server-5c4649-4frrg 0/1 Running 0 5m7s
kubernetes-dashboard dashboard-metrics-scraper-5bd7fc-99svc 1/1 Running 5 300d
4.发现pod未启动,查看日志
kubectl logs -n kube-system metrics-server-5cd8b84649-4frrg
I1010 07:38:16.346976 1 server.go:187] "Failed probe" probe="metric-storage-ready" err="no metrics to serve"
E1010 07:38:24.290470 1 scraper.go:140] "Failed to scrape node" err="Get \"https://10.10.10.6:10250/metrics/resource\": x509: cannot validate certificate for 10.10.10.6 because it doesn't contain any IP SANs" node="docker08.test.com"
5.根据报错信息x509: cannot validate certificate for 10.10.10.6 because it doesn't contain any IP SANs,需要修改配置忽略CA验证
修改metrics-server-components.yaml
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-insecure-tls ###新增--kubelet-insecure-tls 就不会去验证Kubelets提供的服务证书的CA
6.重新应用yaml
kubectl apply -f metrics-server-components.yaml
root@docker03:~# kubectl get pods -A|grep metrics
kube-system kube-state-metrics-88-25frl 1/1 Running 1 192d
kube-system metrics-server-56-zd4d4 1/1 Running 0 1m
kubernetes-dashboard dashboard-metrics-scraper-fc-svc 1/1 Running 5 300d
可以看到metrics-server pod启动成功
root@docker03:~# kubectl top pod -n beta
NAME CPU(cores) MEMORY(bytes)
nginx-base-dps-deployment-769cb4cfb5-twsxp 23m 821Mi
nginx-base-task-deployment-7bcb75b865-h56g5 28m 1011Mi
nginx-base-web-deployment-7c98fd5bd6-dc8cb 20m 834Mi
nginx-baseapi-biz-deployment-74cff5487-8fl52 6m 831Mi
nginx-basesupport-biz-deployment-5bf9448784-hggr2 7m 880Mi
nginx-outbound-admin-deployment-6675ffd944-mx68h 5m 807Mi
nginx-outbound-api-deployment-5f7c575dc8-sj6pm 18m 1033Mi
nginx-outbound-backend-deployment-78895d77cd-ztqrp 8m 805Mi
nginx-outbound-report-deployment-6c8597cdf8-vpsnl 5m 936Mi
nginx-outbound-task-deployment-5b8cc66894-64k66 8m 1208Mi
nginx-pda-api-deployment-86c6cbfd88-vrscj 7m 864Mi
nginx-portal-api-deployment-544f867f87-g744l 4m 827Mi