AVa*_*arf 11 deployment kubernetes kubernetes-pod
我想知道如何按特定顺序开始部署。我知道,initContainers
但这对我不起作用。我有一个巨大的平台,有大约 20 个部署和 5 个状态集,每个都有自己的服务、环境变量、卷、水平自动缩放器等。所以不可能(或者我不知道如何)在另一个中定义它们yaml 部署为initContainers
.
是否还有其他选项可以按特定顺序启动部署?
可以在 Pod 或属于同一 StatefulSet 的 Pod 中订购 initContainers 的启动。但是,这些解决方案不适用于您的情况。
这是因为排序初始化不是解决问题的标准方法。在微服务架构中,更具体地说是 Kubernetes,您将编写容器,以便它们尝试调用它们所依赖的服务(无论它们是否已启动),如果它们不可用,您就会让容器崩溃。这是有效的,因为 Kubernetes 提供了一种自我修复机制,可以在容器失败时自动重新启动容器。这样,您的容器将尝试连接到它们所依赖的服务,如果后者不可用,容器将崩溃并稍后使用指数退避重试。
通过消除服务之间不必要的依赖关系,您可以简化应用程序的部署并减少不同服务之间的耦合。
要在部署之间创建依赖关系,需要有一系列特定条件为真。
例如,等待 pod“busybox1”包含“Ready”类型的状态条件。
kubectl wait --for=condition=Ready pod/busybox1
Run Code Online (Sandbox Code Playgroud)
之后,您可以推出下一个部署。
有关更多详细信息,请参阅kubectl-wait
这是@Michael Hausenblas job-dependencies的另一个示例,在作业对象之间存在依赖关系。
如果您想在工人完成后开始另一份工作?干得好:
$ kubectl -n waitplayground \
wait --for=condition=complete --timeout=32s \
job/worker
job.batch/worker condition met
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12173 次 |
最近记录: |