【发布时间】:2020-07-12 23:33:13
【问题描述】:
我有一种情况,我们正在使用有状态的 pod,我需要在容器死亡时杀死 pod。重启策略:“从不”不适用于有状态集。
有没有办法用有状态的集合来处理这种情况? Kubernetes Operator 能否处理我监控容器,容器因任何原因死机,然后 Operator 强行杀死 Pod 之类的事情?
另外,我们可以用多容器处理这种情况吗?
【问题讨论】:
标签: kubernetes kubernetes-statefulset
我有一种情况,我们正在使用有状态的 pod,我需要在容器死亡时杀死 pod。重启策略:“从不”不适用于有状态集。
有没有办法用有状态的集合来处理这种情况? Kubernetes Operator 能否处理我监控容器,容器因任何原因死机,然后 Operator 强行杀死 Pod 之类的事情?
另外,我们可以用多容器处理这种情况吗?
【问题讨论】:
标签: kubernetes kubernetes-statefulset
有没有办法用有状态的集合来处理这种情况? Kubernetes Operator 能否处理我监控容器,容器因任何原因死机,然后 Operator 强行杀死 pod 之类的事情?
如果您使用的是 StatefulSets,则并非如此。 Kubernetes 操作员也会这样做,杀死 pod,然后 Kubernetes 将重新启动它。你可以让它修改你的有状态集并删除一个副本,但是 StatefulSets 有一个序号,所以即使你有 10 个副本并且你将它更改为 8,那么你将被删除的序号将是 9 和 10 以及那些可能不是您要删除的 pod。
不过,您可以创建自己的操作员,使用自己的控制器自行管理 Pod。这无需使用任何 Kubernetes 控制器,如副本集、部署、状态集、作业等。如果只是您的工作负载独有的东西,它将确定 pod 何时重新启动、删除等。如果您想走那条路,有一些项目可以帮助您入门:
另外,我们可以用多容器处理这种情况吗?
有了操作员,这就是你的想法。您始终可以选择重新启动“从不”,但 Kubernetes 中最低的常见工作负载分母是 Pod。换句话说,如果您的 pod 中有 3 个容器,其中 2 个已启动但其中 1 个已关闭,则该 pod 不会“就绪”
【讨论】: