0

版本

  1. k8s版本:v1.19.0
  2. 指标服务器:v0.3.6

我设置了k8s集群和metrics server,它可以检查master节点上的节点和pod,工作节点看不到,它返回未知。

NAME    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
u-29    1160m        14%    37307Mi         58%
u-31    2755m        22%    51647Mi         80%
u-32    4661m        38%    32208Mi         50%
u-34    1514m        12%    41083Mi         63%
u-36    1570m        13%    40400Mi         62%

当pod在client节点上运行时,返回unable to fetch pod metrics for pod default/nginx-7764dc5cf4-c2sbq: no metrics known for pod 当pod运行一个master节点时,可以返回cpu或者memory

NAME                     CPU(cores)   MEMORY(bytes)
nginx-7cdd6c99b8-6pfg2   0m           2Mi
4

2 回答 2

1

这是一个基于 OP 评论的社区 wiki 答案,以提高可见性。随意扩展它。

该问题是由在不同节点上使用不同版本的 docker 引起的。在两个节点上将 docker 升级到 v19.3 并执行kubeadm reset后,问题得到解决。

于 2020-11-10T09:50:21.587 回答
0

通常,指标服务器通过 kubelet 接收指标。

也许从中检索信息存在问题。

您将需要查看自述文件中提到的以下配置。

配置 根据您的集群设置,您可能还需要更改传递给 Metrics Server 容器的标志。最有用的标志:

--kubelet-preferred-address-types - 确定连接到特定节点的地址时使用的节点地址类型的优先级(默认 [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP])

--kubelet-insecure-tls - 不验证 Kubelet 提供的服务证书的 CA。仅用于测试目的。

--requestheader-client-ca-file - 指定一个根证书包,用于验证传入请求的客户端证书。

也许您可以检查以下配置更改。

--kubelet-preferred-address-types=InternalIP 
--kubelet-insecure-tls

您或许可以参考此票证以获取更多信息。

于 2020-10-28T09:18:14.710 回答