K8S集群优化之修复ServiceEndpoint更新的延迟

  • 时间:
  • 浏览:0

再次仔细阅读源码后,我找到了另还有一个能不都还上能都还上能扭转战局的参数:--kube-api-qps 和--kube-api-burst。kube-controller-manager能都还上能通过这另还有一个参数来限制任何 Controller(包括 Endpoint Controller)对 kube-apiserver发起的请求的数率。

为了外理你這個 现象,首先我通过调整kube-controller-manager 的 参数--concurrent-endpoints-syncs来增加Endpoint Controller的workers,但收效甚微。

在阅读了kube-controller-manager的源码后,我发现了现象所在。Kube-controller-manager的主要职责是通过组织组织结构的众多 Controller将集群的当前情形调整到期望情形,其中 Endpoint Controller用于监控Pod 的生命周期事件并根据有有哪些事件更新 Endpoint。

Endpoint Controller 组织组织结构运行了一组 workers来外理有有哪些事件并更新Endpoint,可能有足够多的对 Endpoint发起的请求被阻塞,那么所有的 workers 还上能 忙于守候被阻塞的请求,这还上能 新事件能都还上能都还上能 被上加到队列中排队守候,可能该队列很长,就会花很长时间来更新 Endpoint。

我后后后后刚结束了了怀疑人生,后后后后刚结束了了怀疑我的职业选泽,哪几只小时还上能 我忽然想起来 Service 并全部都是直接与 Deployment关联的,也不我按照标签对一组提供相同功能的 Pods的抽象,并为它们提供另还有一个统一的入口。更重要的是,Service 是由一组 Endpoint 组成的,我希望Service中的一组Pod所处变更,Endpoint就会被更新。

--kube-api-qps 和--kube-api-burst参数的值越大,kube-apiserver 和etcd 的负载就越高。在我的集群中,通过适当地增加而且 负载来外理你這個 现象是很值得的。

这另还有一个参数的默认值是20,但当集群中的主机数量非常多时,默认值显然不满足集群运行的工作负载。经过不断调试还上能 ,我将参数 --kube-api-qps的值设置为 150,将 --kube-api-burst的值设置为 325,上端的日志信息便消失了,同时上加或移除Pod 时Endpoint也都都还上能立即更新。

I0412 22:59:59.914517 1 request.go:638] Throttling request took 2.489742918s, request: GET:https://10.3.0.1:443/api/v1/namespaces/[some namespace]/endpoints/[some endpoints]"

但还是感觉哪里不对劲,明明延迟了几分钟,为有哪些这里显示的能都还上能都还上能 两秒?

想到这里,就能都还上能继续排查现象了。下面在更新 Deployment的过程中通过 watch 命令来观察有现象的 Service 的 Endpoint。

又经历了几天折腾还上能 ,我又有了新点子,那也不我调试负责更新Endpoint 的组件:kube-controller-manager,最后终于在kube-controller-manager 的日志输出中发现了如下可疑的信息:

哪几只月前,我在更新 Kubernetes 集群中的 Deployment 时发现了另还有一个很奇怪的连接超时现象,在更新 Deployment 还上能 的 150 秒到两分钟左右,所有与以该 Deployment作为服务后端的 Service 的连接还上能 超时或失败。同时我还注意到而且 应用在这段时间内也会总出 莫名其妙的延迟现象。

一后后后后刚结束了了我怀疑是应用那么优雅删除由于的,但当我在更新 Deployment 的过程中(删除旧的 Pod,启动新的 Pod)通过 curl 来测试该应用的健康检查(liveness)和就绪检查(readiness)Endpoints 时,调快就排除了你這個 可能。

$ watch kubectl describe endpoints [endpoint name]

而且给你发现了罪魁祸首,在旧 Pod被移除的 150 秒到几分钟左右的时间段内,有有哪些被删除的Pod的 IP:Port 仍然总出 在Endpoint 的就绪列表中,同时新启动的 Pod的IP:Port也那么被上加到 Endpoint中。终于发现了连接失败的根源,而且为有哪些会总出 你這個 情形呢?仍然无解。