关于k8s指标服务器,只能监视某些资源

时间:2020-10-28 07:25:35

标签: kubernetes metrics

版本

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

我设置了k8s集群和指标服务器,它可以检查主节点上的节点和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在客户端节点上运行时,它返回unable to fetch pod metrics for pod default/nginx-7764dc5cf4-c2sbq: no metrics known for pod 当pod运行一个主节点时,它可以返回cpu或内存

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

2 个答案:

答案 0 :(得分:1)

这是基于OP的注释发布的社区Wiki答案,以提高可见性。随意扩展它。

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

答案 1 :(得分:0)

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

从中检索信息可能有问题。

您需要查看readme中提到的以下配置。

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

-kubelet-preferred-address-types-确定连接到特定节点的地址时使用的节点地址类型的优先级(默认[主机名,内部DNS,内部IP,外部DNS,外部IP])

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

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

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

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

您也许可以参考this ticket以获得更多信息。