gpt4 book ai didi

kubernetes - Kubernetes 支持连接耗尽吗?

转载 作者:行者123 更新时间:2023-12-02 22:55:51 25 4
gpt4 key购买 nike

Kubernetes 支持连接耗尽吗?

例如,我的部署推出了新版本的 Web 应用容器。在连接耗尽模式下,Kubernetes 应该从新镜像启动一个新容器,并将所有进入我的服务的新流量路由到这个新实例。旧实例应保持足够长的事件时间,以便为现有连接发送响应。

最佳答案

Kubernetes 确实支持连接耗尽,但其发生方式由 Pod 控制,称为 graceful termination .

优雅终止

让我们举一个通过 Service 提供流量服务的一组 Pod 的示例。这是一个简化的示例,完整的详细信息可以在 documentation 中找到。 .

  1. 系统(或用户)通知 API Pod 需要停止。
  2. Pod 设置为Terminate 状态。这会将其从服务流量的服务中删除。现有连接将保持不变,但一旦负载均衡器识别到更改,新连接就应停止。
  3. 系统向 Pod 中的所有容器发送 SIGTERM。
  4. 系统等待 terminationGracePeriodSeconds(默认 30 秒),或者直到 Pod 自行完成。
  5. 如果 Pod 中的容器仍在运行,则会向它们发送 SIGKILL 并立即终止。此时,如果 Pod 仍在运行,则会被强制终止。

这不仅涵盖了简单的终止情况,而且在滚动更新部署中使用了完全相同的流程,每个 Pod 以完全相同的方式终止,并有机会进行清理。

使用优雅终止来排空连接

如果您的应用中没有处理 SIGTERM,您的 Pod 将立即终止,因为 SIGTERM 的默认操作是立即终止进程,并且 Pod 退出后不会使用宽限期靠自己。

如果您需要“连接耗尽”,这是在 Kubernetes 中实现它的基本方法:

  1. 处理 SIGTERM 信号,并按照应用程序决定的方式清理连接。这可能只是“不执行任何操作”以允许清除飞行中的连接。长时间运行的连接可以以对客户端应用程序(更)友好的方式终止。
  2. terminationGracePeriodSeconds 设置得足够长,以便 Pod 自行清理。

关于kubernetes - Kubernetes 支持连接耗尽吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40391164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com