【问题标题】:Helm best practicesHelm 最佳实践
【发布时间】:2021-01-28 20:22:18
【问题描述】:

我是 helm 新手,喜欢 helm 为部署创建版本并将它们打包为 jfrog 关节的工件的想法,但我不清楚的一件事是创建它的难易程度。

我对 kubernetes mainfest 很满意,创建它非常简单,您不必手工制作 yaml。

您可以简单地在空运行模式下运行 kubectl 命令并导出大部分 yaml 标签,如下所示:

kubectl run nginx --image=nginx --dry-run=client -o yaml > nginx-manifest.yaml

现在要创建 helm,我需要运行 helm create 并键入 helm yaml 文件所需的所有值。

好奇 helm 是否有 kubectl 提供的快捷方式来轻松创建图表,在生成图表时通过命令行键入所需的值?

还有支持将部署清单转换为 helm 图表的迁移实用程序吗?

【问题讨论】:

    标签: kubernetes kubernetes-helm helmfile


    【解决方案1】:

    helm create 可以满足您的需求。它创建一个包含所有基本内容的目录,因此您无需手动创建每个文件/目录。但是,它无法创建它不知道的图表的内容。

    但是,幕后没有魔法,图表由模板和值组成。模板与您使用的 YAML 文件相同,只是您可以用 Helm 使用的占位符替换您想要“动态”的任何内容。就是这样。

    因此,换句话说,保持原样导出(我强烈建议停止这样做并创建适合您需要的适当文件)并添加占位符 ({{ .Values.foo }})

    例如,这是我拥有的服务的模板:

    apiVersion: v1
    kind: Service
    metadata:
      name: {{ .Values.name | default .Chart.Name }}
    spec:
      ports:
      - port: {{ .Values.port }}
        protocol: TCP
        targetPort: {{ .Values.port }}
      selector:
        app: {{ .Values.name | default .Chart.Name }}
    

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 2019-01-14
      • 2022-01-10
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 2010-09-05
      • 2014-12-21
      • 2010-12-23
      相关资源
      最近更新 更多