我们在HA中使用Kops 1.7部署了一个Kubernetes 1.7.8集群,其中有三个主机。该集群有10个节点和大约400个Pod。
该集群具有堆,prometheus和ELK(为某些 pods 收集日志)。
我们发现主机中的 Activity 非常活跃,超过api服务器所用CPU的90%。
查看普罗米修斯的数字,我们可以看到对kube-apiserver的近5000个请求是WATCH动词,其余的少于50个请求(GET,LIST,PATCH,PUT)。
几乎所有请求都通过客户端“Go-Http-client / 2.0”(Go HTTP库的默认用户代理)进行报告。
这是正常情况吗?
我们如何调试哪些Pod发送这些请求? (我们如何将源IP添加到kube-apiserver日志中?)
[kube-apiserver.manifest] [1]
谢谢,
查尔斯
[1]: https://pastebin.com/nGxSXuZb
最佳答案
关于Kubernetes架构,这是正常现象,因为所有kubernetes集群组件都在调用api服务器来监视更改。
这就是为什么您的日志中有超过5000个WATCH条目的原因。请看看kubernetes cluster is managed by kube api server的样子以及master-node comunication is organized的样子
关于kubernetes - kube-apiserver高CPU和请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49394876/