如何确保Kubernetes中容器副本的就绪性?

时间:2019-03-04 10:41:51

标签: docker kubernetes

我是Kubernetes的新手,我想知道是否可以一次启动一个容器副本?换句话说,如果我部署了一个包含N个副本的容器或Pod配置的撰写文件,是否有可能(如果可以的话)确保每个副本在启动前都等待上一个副本准备就绪?

我阅读了有关就绪探针的信息,但是如果我对它们有正确的理解,它们将确保容器顺序而不是副本的顺序,还是我误解了?

谢谢

2 个答案:

答案 0 :(得分:2)

A StatefulSet has this property:给定三个副本,直到第一个副本运行并准备就绪,第二个副本才会启动。

(通常,“ replica”和“ pod”含义相同。如果您创建带有3个副本的Deployment或StatefulSet,并在完成后运行kubectl get pods,则应该看到3个容器。)

如果您使用Kompose进行部署,则至少有a hint that it doesn't support StatefulSets;您需要为此编写原生的Kubernetes YAML。

答案 1 :(得分:0)

Kubernetes具有StatefulSet对象,用于管理Pod的一组副本。 StatefulSet与默认Deployment的不同之处在于,它为这些Pod的顺序和唯一性提供了保证。来自the documentation

  

对于具有N个副本的StatefulSet,在部署Pod时,将按{0..N-1}的顺序顺序创建它们。

例如,see this blog关于如何为ElasticSearch设置StatefulSet。