繁体   English   中英

Kubernetes:需要每个集群或每个 statefulset 或副本集完成一次的任务

[英]Kubernetes: Tasks that need to be done once per cluster or per statefulset or replicaset

所以我听说了initConainers ,它允许您进行应用程序前容器初始化。 但是,我想要在集群级别或 statefulset 甚至整个 pod 上完成的初始化。

例如,我想在我的持久卷上执行一次 hadoop namenode 格式并完成它。 完成后,我的 namenode statefulset 和 datanode 副本集每次都可以继续进行

kubernetes有什么可以适应这个的吗?

它的扩展怎么样?

Kubernetes 本身为临时执行提供作业 作业与现有的 Pods/Deployments/Statefulsets 没有非常紧密地集成。

Helm是一个部署协调器,包括可在installupgrade期间使用的prepost挂钩

helm docco通过注释提供了一个post-install运行的 Job 示例

metadata:
  annotations:
    # This is what defines this resource as a hook. Without this line, the
    # job is considered part of the release.
    "helm.sh/hook": post-install
    "helm.sh/hook-weight": "-5"
    "helm.sh/hook-delete-policy": hook-succeeded

如果您有更复杂的需求,您可以对查询 kubernetes API 以检查集群状态的管理器或作业执行相同的操作。

头盔 3

警告 helm 很快就会迁移到 v3.x,他们已经重新架构了 v2 中的许多重大问题。 如果您刚刚开始使用 helm,请留意 v3 测试版。 截至 2019 年 8 月,它只是 alpha 版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM