【发布时间】:2019-07-22 13:19:59
【问题描述】:
我正在使用 helm chart 在 kubernetes 上部署我的应用程序。但是我在堆栈中使用的服务依赖于其他服务我如何确保在依赖项建立之前不会部署 helm?
【问题讨论】:
标签: kubernetes dependencies devops kubernetes-helm kubernetes-deployment
我正在使用 helm chart 在 kubernetes 上部署我的应用程序。但是我在堆栈中使用的服务依赖于其他服务我如何确保在依赖项建立之前不会部署 helm?
【问题讨论】:
标签: kubernetes dependencies devops kubernetes-helm kubernetes-deployment
通常你不会;您只需让 Helm(或 kubectl apply -f)一次性启动所有内容,然后让它重试启动所有内容。
最常见的模式是,如果外部服务不可用,容器进程会在启动时简单地崩溃;发生这种情况时,Kubernetes Pod 机制将重新启动容器。如果依赖永远不会出现,您将永远陷入 CrashLoopBackOff 状态,但如果它在 5-10 秒内出现,那么一切都会在一两分钟内正常出现。
还要记住,任何类型的 pod 在 Kubernetes 中都是一次性的。 IME 如果某项服务无法正常工作,首先要尝试的是kubectl delete pod 并让部署控制器重新创建它。 Kubernetes 也可以自行执行此操作,例如,如果它决定需要将 pod 重新定位到不同的节点。也就是说:即使在您的 pod 首次启动 sup 时存在某些依赖关系,也不能保证它会永远保持下去。
【讨论】:
wait 命令。几年后,有更好的解决方案吗?