如何从服务中删除 pod 而不删除它

Za*_*man 6 kubernetes

我正在寻找一个选项,可以从部署/复制中删除 pod,而不删除它。我 在这里使用选择器和标签找到了一个很好的解决方案找到了一个很好的解决方案,但在我的情况下这是不可能的,因为我不是 Pod/服务创建者,所以我不能强制创建选择器。我的应用程序只是操作现有服务的 Pod。

非常感谢您的帮助

Dar*_*est 6

您可以在 Pod 上使用就绪探测器。然后找到自己的方法来使该探测失败。一旦服务检测到某个 pod 未准备好,它就会从服务将连接转发到的 pod 集中删除。这不会杀死 pod,也不会导致它重新启动(活性探针可以做到这一点)。它也不会断开当前客户端的连接。如果您的计划是最终重新启动 Pod,您可能需要等待这些连接的客户端耗尽。

这样做的一个想法是:在特定 pod 的 ip 上使用 jmx 或休息调用,并执行该操作,告诉应用程序返回未准备就绪的实现。同样的技巧可以将其切换回就绪状态,或者延迟启动时的准备状态,直到您手动触发该 Pod(例如,如果您让 Pod 执行一些昂贵的启动,例如数据库扫描/更新)。


Jav*_*ron 1

据我所知,服务应该有一个选择器(例如,标签),否则,服务如何知道哪些 pod 提供所需的服务?即使您可能无法更改服务本身的选择机制,您也可以尝试更改 Pod 中的标签。如果您可以操作 Pod,则可以删除其标签,从而使其无法被服务选择。