是否有办法确保在设置副本大于1时每次缩放一个?
示例:Replica set为3
- Pod 1 -初始化,Pod 2 -等待,Pod 3 -等待
- Pod 1 -运行,Pod 2 -初始化,Pod 3 -等待
- Pod 1 -运行,Pod 2 -运行,Pod 3 -初始化
- Pod 1 - Running, Pod 2 - Running, Pod 3 - Running
您可以使用StatefulSets
完成此行为。从Kubernetes docs
- 对于具有N个副本的statfulset,当部署pod时,它们按顺序创建,顺序从{0..N-1}。
- 当pod被删除时,它们以相反的顺序终止,从{N-1..0}。
- 在缩放操作应用到Pod之前,它的所有前辈必须处于Running and Ready状态。
- 在一个Pod被终止之前,它的所有后续必须完全关闭。
因此,正如您在这里看到的,新pod在前一个初始化之前不会启动。
注意:当使用OrderedReady
pod管理策略(默认)时,Kubernetes保证此行为。