jam*_*tha 2 http keep-alive kubernetes kubernetes-health-check
我们有一个 kubernetes 服务在三台机器上运行。集群内部和外部的客户端都通过 http 与此服务进行通信,并启用了 keep-alive 选项。在服务部署期间,退出的 Pod 会进行准备情况检查,该检查在关闭开始时开始失败,并相应地从服务端点列表中删除,但它们仍然接收流量,并且由于容器会突然退出,一些请求会失败。我们认为这是因为保持活动状态允许客户端重新使用主机就绪时建立的这些连接。是否应该遵循一系列步骤来确保我们不会遇到这些问题?如果可能的话,我们希望允许保持连接。
如果代理/负载均衡发生在第 4 层而不是第 7 层,则会出现此问题。对于内部服务(ClusterIP 类型的 Kubernetes 服务),由于 Kube-proxy 使用第 4 层代理进行代理,因此客户端将保持连接在 Pod 无法再提供服务后。同样,对于LoadBalancer类型的服务,如果后端类型设置为TCP(AWS ELB默认为TCP),也会出现同样的问题。请参阅此问题了解更多详细信息。
目前这个问题的解决方案是:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol为 kubernetes 服务添加注解并将其设置为 HTTP,以便 ELB 使用 HTTP 代理而不是 TCP。kube-proxy| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |