舵手是否可以处理工作?

时间:2019-12-18 20:04:46

标签: kubernetes kubernetes-helm

我有兴趣将我的kubernetes部署方法迁移为基于操作员的方法。特别是像我们已经在使用helm一样使用Helm运算符。

但是,在我的基础架构中,我们有很多工作,并且想知道舵手如何处理工作规范?

它如何删除或替换正在运行的作业?职位规格可能不会改变,我们只需要再次运行该职位?这样就不会涉及CR或helmRelease的任何更改。 ....

我感到困惑。

1 个答案:

答案 0 :(得分:1)

您可以通过Chart挂钩控制掌舵作业。 它们的执行由example的可用钩子之一定义:

  

pre-install-在渲染模板之后但在任何模板之前执行   资源是在Kubernetes中创建的,

     

post-install-将所有资源加载到其中后执行   Kubernetes,

     

pre-delete-在删除任何资源之前执行删除请求   从Kubernetes中删除,

     

post-delete-在所有   版本的资源已被删除,等等。

可以通过分配给作业的权重来管理作业执行的顺序(如果它们具有相同的权重,则将按名称升序执行)。它声明为字符串,可以采用任何值:-5、0、5等。

有3种挂钩删除策略,它们决定何时删除挂钩资源,并在注释字段中定义:

before-hook-creation-在启动新的挂钩之前删除先前的资源-如果未定义删除策略,则会将其应用为默认设置。

hook-succeeded-成功执行挂接后删除资源

hook-failed-如果挂钩在执行期间失败,则删除资源

示例:

apiVersion: batch/v1
kind: Job
metadata:
  name: my-job
  annotations:
    "helm.sh/hook": pre-install #defines type of the hook
    "helm.sh/hook-weight": "-5" #weight of the hook
    "helm.sh/hook-delete-policy": hook-succeeded #if job finished successfully, resource will be deleted
  #[...]