zoukankan      html  css  js  c++  java
  • helm-chart7,调试与hook

    调试

    几个命令可以帮助进行调试

    helm lint 首选工具,返回错误和警告信息。
    helm install --dry-run --debug:服务器会渲染你的模板,然后返回结果清单文件。
    helm get manifest:这是查看服务器上安装的模板的方法。
    

    如果yaml文件没有解析,想看看生成了什么时,检查yaml文件一个简单方法是注释模板中的问题部分,然后重新运行helm install --dry-run --debug

    hooks

    hook 机制,为允许在release的生命周期中的某些点进行干预,执行一些操作,比如 备份数据库,确保先后顺序等。
      

    可用的hook 节点:

    预安装pre-install::在模板渲染后执行,但在Kubernetes中创建任何资源之前执行。
    安装后post-install:在所有资源加载到Kubernetes后执行
    预删除pre-delete:在从Kubernetes删除任何资源之前执行删除请求。
    删除后post-delete:删除所有release的资源后执行删除请求。
    升级前pre-upgrade:在模板渲染后,但在任何资源加载到Kubernetes之前执行升级请求(例如,在Kubernetes应用操作之前)。
    升级后post-upgrade:在所有资源升级后执行升级。
    预回滚pre-rollback:在渲染模板之后,但在任何资源已回滚之前,在回滚请求上执行。
    回滚后post-rollback:在修改所有资源后执行回滚请求。
    

    hook 的任务执行的时候,Tiller会阻塞;任务执行失败,则应用发布失败。

    hook 具有权重,以数字表示,可为负。当一个hook声明了多个资源时,这些资源将被串行执行。如果他们有hook权重,他们按照加权顺序执行。

    Hook创建的资源不作为release的一部分进行跟踪或管理。一旦Tiller验证hook已经达到其就绪状态,就不再跟踪它了,即无法再对其进行操作。所以hook 创建的资源,无法使用 helm delete 删除。可以在hook 中同时写上删除的代码,或者指定其删除策略:"helm.sh/hook-delete-policy"

    "hook-succeeded": 指定Tiller应该在hook成功执行后删除hook。
    "hook-failed": 指定如果hook在执行期间失败,Tiller应该删除hook。
    "before-hook-creation": 指定Tiller应在删除新hook之前删除以前的hook。
    同时制定两个:"helm.sh/hook-delete-policy": "hook-succeeded,hook-failed"
    

    hook 示例:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: "{{.Release.Name}}"
      labels:
        heritage: {{.Release.Service | quote }}
        release: {{.Release.Name | quote }}
        chart: "{{.Chart.Name}}-{{.Chart.Version}}"
      annotations:  # hook 声明
        # 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
    spec:  # hook hook 资源,任务:起镜像,sleep 十秒。
      template:
        metadata:
          name: "{{.Release.Name}}"
          labels:
            heritage: {{.Release.Service | quote }}
            release: {{.Release.Name | quote }}
            chart: "{{.Chart.Name}}-{{.Chart.Version}}"
        spec:
          restartPolicy: Never
          containers:
          - name: post-install-job
            image: "alpine:3.3"
            command: ["/bin/sleep","{{default "10" .Values.sleepyTime}}"]
    

    一个资源可以有多个hook:

    annotations:
    "helm.sh/hook": post-install,post-upgrade
  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/mingbai/p/helmChart7.html
Copyright © 2011-2022 走看看