kubesphere中Metrics Server故障排查
16lz
2021-03-24
Metrics Server
kubernetes 集群资源监控之前可以通过 heapster 来获取数据,在 1.11 开始开始逐渐废弃 heapster 了,采用 metrics-server 来代替,metrics-server 是集群的核心监控数据的聚合器,它从 kubelet 公开的 Summary API 中采集指标信息,metrics-server 是扩展的 APIServer,依赖于kube-aggregator,因为我们需要在 APIServer 中开启相关参数。
环境信息
# kubectl versionClient Version: version.Info{Major:"1", Minor:"18+", GitVersion:"v1.18.8-eks-7c9bda", GitCommit:"7c9bda52c425d0d56d7b93f1377a826b4132c05c", GitTreeState:"clean", BuildDate:"2020-08-28T23:07:29Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}Server Version: version.Info{Major:"1", Minor:"18+", GitVersion:"v1.18.9-eks-d1db3c", GitCommit:"d1db3c46e55f95d6a7d3e5578689371318f95ff9", GitTreeState:"clean", BuildDate:"2020-10-20T22:18:07Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}# kubespere 版本信息v3.0.0# docker --versionDocker version 19.03.13-ce, build 4484c46# cat /etc/system-releaseAmazon Linux release 2 (Karoo)
报错现象
当我使用kubectl get pod -n kube-system
查看pod时,发现metrics-server-5b65cbf5bb-xnzvg
这个pod一直在处于来回重启状态。
以下是排错过程:
# kubectl logs metrics-server-5b65cbf5bb-xnzvg -n kube-systemE0324 09:28:34.486005 1 manager.go:111] unable to fully collect metrics: [unable to fully scrape metrics from source kubelet_summary:ip-10-34-133-45.eu-west-1.compute.internal: unable to fetch metrics from Kubelet ip-10-34-133-45.eu-west-1.compute.internal (ip-10-34-133-45.eu-west-1.compute.internal): Get https://ip-10-34-133-45.eu-west-1.compute.internal:10250/stats/summary?only_cpu_and_memory=true: dial tcp: lookup ip-10-34-133-45.eu-west-1.compute.internal on 10.34.133.2:53: no such host]
我们可以发现 Pod 中出现了一些错误信息:xxx: no such host
,我们看到这个错误信息一般就可以确定是 DNS 解析不了造成的,我们可以看到 metrics-server 会通过 kubelet 的 10250 端口获取信息,使用的是 hostname。
我们查看下metrics-server
的deployment文件发现,Pod 内部是可以获取这个 hosts 信息,如下:
command: - /metrics-server - '--cert-dir=/tmp' - '--logtostderr' - '--secure-port=8443' - '--cert-dir=/tmp' - '--logtostderr' - '--secure-port=8443' - '--kubelet-insecure-tls' - >- --kubelet-preferred-address-types=Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP
那么现在可以排除这个原因了,由于我们使用的是AWS公有云
EKS部署的k8s和kubesphere,很有可能是VPC网络
DNS主机名的问题。参考EFS挂载失败官网说明
在kubesphere控制台重新部署metrics-server
Deployment即可正常!
参考文档
- Metrics Server 安装
如果文章对你有帮助,请赞赏
赞赏
0人进行了赞赏支持
更多相关文章
- 对接海康AI Cloud智能应用平台
- docker es7.6 集群
- CDH kerberos web界面 freeipa
- ERROR 1047 (08S01)
- ERROR 1180 (HY000) at line
- CDH 启用kerberos
- ASA的Twice NAT解决内网无法访问映射后的公网地址
- always on 清理日志记录
- docker 安装脚本