成功创建了两个 pod: app
和 postgres
,它们可以通过彼此的服务进行通信。在当前的流程中,这两个 pod 同时创建,但是可以更改为按顺序创建/启动。
postgres
pod 中的数据库容器最初是空的,需要进行种子填充。种子填充过程通过 app
pod 进行,因此它也需要运行和工作。一旦 postgres
完成种子填充,app
仍然不知道这些新数据,需要重新启动。这是 app
自身的缺陷,我无法控制。
目前的流程如下:
kubectl create -f pods.yaml # creates `app` and `postgres` pods
kubectl exec app -- bash -c "<seed command>"
kubectl delete pod app
sleep 45 # takes a while for `app` to terminate
kubectl create -f pods.yaml # Ignore the "postgres pod and service already exist" error
是否有更好的自动协调方法,在 postgres
达到种子状态后自动重启 app
?
也许我完全忽略了 Kubernetes 的某些方面/功能集,可以帮助处理这种情况....
deployments
有一种方法? - changingrainbows