【发布时间】:2019-06-06 07:01:41
【问题描述】:
我有一个场景,需要“准备”Kubernetes 以起飞/终止/关闭容器,但允许它服务 一些 请求直到发生这种情况。
例如,假设有三种方法:StartAction、ProcessAction、EndAction。我想阻止客户端在容器即将关闭时调用 StartAction。但是,他们应该能够在该相同容器上使用 ProcessAction 和 EndAction(在所有操作完成后,容器将关闭)。
我在想这是某种“双重”就绪探测,我基本上想指示“未就绪”状态,但继续为已启动的操作提供请求。
我知道有一个 PreStop 挂钩,但我不确定这是否满足需求,因为根据文档,我怀疑在 PreStop 期间 Pod 已经从负载均衡器中取出:
- (与 3 同时) Pod 已从服务的端点列表中删除,并且不再被视为复制控制器正在运行的 Pod 集的一部分。缓慢关闭的 Pod 无法继续为流量提供服务,因为负载平衡器(如服务代理)会将它们从轮换中移除。
(https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods).
假设我必须依赖粘性并且必须继续在启动这些操作的容器上为操作请求提供服务,是否有一些推荐的做法?
【问题讨论】:
标签: kubernetes