6

我正在使用 helm chart 在 kubernetes 上部署我的应用程序。但是我在堆栈中使用的服务依赖于其他服务,如何确保在依赖项建立之前不会部署 helm?

4

1 回答 1

9

通常你不会;您只需让 Helm(或kubectl apply -f)一次性启动所有内容,然后让它重试启动所有内容。

最常见的模式是,如果外部服务不可用,容器进程会在启动时简单地崩溃;发生这种情况时,Kubernetes Pod 机制将重新启动容器。如果依赖项从未出现,您将永远陷入 CrashLoopBackOff 状态,但如果它出现在 5-10 秒内,那么一切都会在一两分钟内正常出现。

还要记住,任何类型的 pod 在 Kubernetes 中都是一次性的。IME 如果某项服务无法正常工作,首先要尝试的事情之一是kubectl delete pod让部署控制器重新创建它。Kubernetes 也可以自行执行此操作,例如,如果它决定需要将 pod 重新定位到不同的节点。也就是说:即使在您的 pod 首次启动时存在某些依赖关系,也不能保证它会永远存在。

于 2019-03-02T02:47:15.453 回答