Kubernetes部署多个副本-如何将副本号传递给pod

Eld*_*sis 5 kubernetes

具有 2 个以上副本的新 Kubernetes 部署,以实现高可用性。

我希望能够仅在第一个 pod 上执行命令,比如说创建一个数据库,并让其他副本等待第一个副本完成。
为了实现这一点,我只想在 pod 中知道这是否是副本 #1。

所以在 Pod 的入口点我可以测试:

if [ $REPLICA_ID -eq 1 ]; then 
    CreateDB
else
    WaitForDB
fi
Run Code Online (Sandbox Code Playgroud)

这可以在 Kubernetes 中完成吗?

pag*_*gid 6

在 Kubernetes 中 aDeployment被认为是无状态的,因此不提供您正在寻找的功能。您应该更深入地研究StatefulSet它们的功能。

例如,StatefulSet支持有序创建,当与通常可用的readinessProbepod 结合使用时,您可以创建所需的行为。此外,pod 名称在 a 中是稳定的,StatefulSet因此您可以使用 的 来完成hostname测试Pod