0

情况:metrics-server 部署图像是:k8s.gcr.io/metrics-server/metrics-server:v0.4.2 我使用kops工具将 kubernetes 集群部署到一个 AWS 帐户中。

错误及其失败的原因,由 kubectl -n kube-system logs metrics-server-bcc948649-dsnd6

 unable to fully scrape metrics: [unable to fully scrape metrics from node ip-10-33-47-106.eu-central-1.compute.internal: unable to fetch metrics from node ip-10-33-47-106.eu-central-1.compute.internal: Get "https://10.33.47.106:10250/stats/summary?only_cpu_and_memory=true": x509: cannot validate certificate for 10.33.47.106 because it doesn't contain any IP SANs, unable to fully scrape metrics from node ip-10-33-50-109.eu-central-1.compute.internal: unable to fetch metrics from node ip-10-33-50-109.eu-central-1.compute.internal: Get "https://10.33.50.109:10250/stats/summary?only_cpu_and_memory=true": x509: cannot validate certificate for 10.33.50.109 because it doesn't contain any IP SANs]

我可以通过修改度量服务器部署模板并将参数添加 - --kubelet-insecure-tls到容器 args 来轻松解决这个问题,但似乎不是生产解决方案。

我想在这里问和学习的是,我怎样才能在不失去安全性的情况下以正确的方式解决这个问题?

4

1 回答 1

0

kOps 创建的 Kubelet 证书在其 SAN 中仅包含节点主机名,而使用默认清单部署的指标服务器正在尝试使用节点私有 IP 进行抓取。更改kubelet-preferred-address-types参数可解决此问题:

- --kubelet-preferred-address-types=Hostname
于 2021-08-17T05:46:37.993 回答