掌舵图中吊舱之间的依赖性

时间:2019-03-15 14:59:59

标签: kubernetes-helm

我正在尝试部署头盔图表,我需要用例的帮助。

我的要求是,在头盔图表模板文件夹中,我只有很少的部署yml和.tpl文件,当我调用helm install命令时,模板文件夹中的其中一个部署yml将仅作为一个pod部署为“作业”类型与之相关。模板文件夹中的其他部署ymls应该等待此作业成功完成,然后才应该作为Pod部署在kubernetes上。

当我触发helm install命令时,helm将读取所有yml,因此将尝试一次部署所有我不需要的pod。我希望我的工作先获得成功,然后再开始部署其他吊舱。在作业运行时,所有其他Pod应该等待或不启动,因为它们都取决于作业是否成功。

如何使用掌舵来实现这种情况。请提出建议。如何让其他吊舱等待,让他们知道现在作业已成功完成。

1 个答案:

答案 0 :(得分:1)

您正在寻找helm hooks

  

Helm提供了一个挂钩机制,以允许图表开发人员进行干预   在发行版生命周期的某些时候。例如,您可以使用   钩到:

     
      
  • 在安装任何其他图表之前,请在安装过程中加载ConfigMap或Secret   已加载。
  •   
  • 执行任务以备份数据库,然后再安装新的   图表,然后在升级后执行第二个作业以   恢复数据。
  •   
  • 运行作业,然后删除发行版以正常使用   服务停止旋转后再移除。
  •   

在工作中添加以下注释:

metadata:
  annotations:
    "helm.sh/hook": "pre-install"

您甚至可以将挂钩配置为在安装或升级之前运行(请参见其他选项here

metadata:
  annotations:
    "helm.sh/hook": "pre-install, pre-upgrade"

在发行版中不会跟踪或管理挂钩创建的资源。蒂勒(Tiller)验证挂钩已达到就绪状态后,它将留下您的作业资源(或者您可以设置"helm.sh/hook-delete-policy"来删除它)。

相关问题