0

我有一个指标服务器和一个使用此服务器的水平 pod 自动缩放器,在我的集群上运行。
这工作得很好,直到我将 linkerd-proxies 注入到我的应用程序正在运行的命名空间的部署中。在该命名空间中运行kubectl top pod会导致error: Metrics not available for pod <name>错误。但是,metrics-server pod 的日志中没有任何内容。
metrics-server 显然在其他命名空间中工作正常,因为 top 在每个命名空间中都可以工作,但网格化的命名空间除外。

起初我认为这可能是因为代理的资源请求/限制未设置,但在使用它们运行注入后(kubectl get -n <namespace> deploy -o yaml | linkerd inject - --proxy-cpu-request "10m" --proxy-cpu-limit "1" --proxy-memory-request "64Mi" --proxy-memory-limit "256Mi" | kubectl apply -f -),问题仍然存在。

这是一个已知问题,是否有任何可能的解决方案?

PS:我有一个kube-prometheus-stack在不同的命名空间中运行,这似乎能够从网格 pod 中抓取 pod 指标就好了显示 prometheus 可以收集数据的 grafana 仪表板图像

4

1 回答 1

0

我可以kubectl top在注入了 linkerd 的 pod 上使用:

:; kubectl top pod -n linkerd --containers
POD                                       NAME             CPU(cores)   MEMORY(bytes)   
linkerd-destination-5cfbd7468-7l22t       destination      2m           41Mi            
linkerd-destination-5cfbd7468-7l22t       linkerd-proxy    1m           13Mi            
linkerd-destination-5cfbd7468-7l22t       policy           1m           81Mi            
linkerd-destination-5cfbd7468-7l22t       sp-validator     1m           34Mi            
linkerd-identity-fc9bb697-s6dxw           identity         1m           33Mi            
linkerd-identity-fc9bb697-s6dxw           linkerd-proxy    1m           12Mi            
linkerd-proxy-injector-668455b959-rlvkj   linkerd-proxy    1m           13Mi            
linkerd-proxy-injector-668455b959-rlvkj   proxy-injector   1m           40Mi  

所以我不认为 Linkerd 和 Kubernetes 指标服务器有什么根本不兼容的地方。

我注意到有时我会在 pod 启动后的前 1m 内看到错误,在度量服务器获得 pod 的初始状态之前;但这些错误消息似乎与您所引用的有所不同:

:; kubectl rollout restart -n linkerd deployment linkerd-destination 
deployment.apps/linkerd-destination restarted
:; while ! kubectl top pod -n linkerd --containers linkerd-destination-6d974dd4c7-vw7nw ; do sleep 10 ; done
Error from server (NotFound): podmetrics.metrics.k8s.io "linkerd/linkerd-destination-6d974dd4c7-vw7nw" not found
Error from server (NotFound): podmetrics.metrics.k8s.io "linkerd/linkerd-destination-6d974dd4c7-vw7nw" not found
Error from server (NotFound): podmetrics.metrics.k8s.io "linkerd/linkerd-destination-6d974dd4c7-vw7nw" not found
Error from server (NotFound): podmetrics.metrics.k8s.io "linkerd/linkerd-destination-6d974dd4c7-vw7nw" not found
POD                                    NAME            CPU(cores)   MEMORY(bytes)   
linkerd-destination-6d974dd4c7-vw7nw   destination     1m           25Mi            
linkerd-destination-6d974dd4c7-vw7nw   linkerd-proxy   1m           13Mi            
linkerd-destination-6d974dd4c7-vw7nw   policy          1m           18Mi            
linkerd-destination-6d974dd4c7-vw7nw   sp-validator    1m           19Mi
:; kubectl version --short
Client Version: v1.23.3
Server Version: v1.21.7+k3s1
于 2022-03-04T01:18:42.580 回答