头盔最佳实践

Helm best practices

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

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

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

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

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

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

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

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

但是,幕后并没有魔法,图表由模板和值组成。这些模板与您过去使用的 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 }}