需要添加什么?
我们正在使用 maxUnavailable
在一个有状态集(stateful set)中,并使用 OrderedReady
策略。我们希望解决以下几个问题/增强功能:
- 它正在并行终止 pods,但整个初始化过程(
ContainerCreating
/Init
/PodInitializing
)仍然一个接一个地进行,是否也可以并行进行? - 当缩小(和扩大)规模时,
maxUnavailable
完全被忽略,pods 仍然一个接一个地被终止(和初始化),这是否也可以并行进行?
为什么需要这个?
我们有一个有状态集,有32个副本,部署和扩展需要很长时间。通过使用 maxUnavailable
,我们已经大大提高了性能(从超过30分钟缩短到不到5分钟),我们相信如果初始化也能并行进行,我们可以将时间缩短到不到1分钟。
至于缩小规模,因为目前是逐个进行的,它仍然需要我们约30分钟,我们希望让它尽可能快地部署。
6条答案
按热度按时间bjg7j2ky1#
这个问题目前正在等待分类。
如果SIG或子项目确定这是一个相关的问题,他们将通过应用
triage/accepted
标签并提供进一步的指导来接受它。组织成员可以通过在评论中写入
/triage accepted
来添加triage/accepted
标签。有关使用PR评论与我互动的说明,请查看here。如果您对我的行为有任何问题或建议,请针对kubernetes/test-infra仓库提出一个问题。
mwg9r5ms2#
/sig apps
dl5txlt93#
@tzachshabtay ,我想参与这个项目。
wvmv3b1j4#
整个初始化过程(
ContainerCreating
/Init
/PodInitializing
)仍然一个接一个地进行,是否也可以并行处理?也许
spec.podManagementPolicy = Parallel
可以做到这一点。我困惑的是,您想要同时创建pod,而状态集
spec.podManagementPolicy
是OrderedReady
。这听起来矛盾。txu3uszq5#
/retitle Make
maxUnavailable
more useful for StatefulSets withOrderedReady
Pod management34gzjxbg6#
@nayihz 感谢,所以使用"parallel"时,它按预期工作。我现在不太清楚"OrderedReady"以并行方式终止,但仍然逐个初始化的作用域是什么?或者从更广泛的Angular 来看,在我们之前有
maxUnavailable
时,我将"OrderedReady"视为maxUnavailable=1
,将"Parallel"视为maxUnavailable=all replicas
,是否有其他原因(除了兼容性)仍然保留pod管理策略字段,而不仅仅是使用maxUnavailable
?