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 
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐