vik*_* mp 5 kubernetes kubernetes-helm
我正在尝试运行一个包含大约 40 个微服务的应用程序。如何将 40 个不同的 docker 映像从 value.yml 文件传递到 template.yml 文件。
name:{{ .values.name }}
spec:
containers:
- image: {{ .values.container.image }}
Run Code Online (Sandbox Code Playgroud)
值文件
name:A
container:
image:A
name :B
container :
image:B
Run Code Online (Sandbox Code Playgroud)
我还有 40 个这样的 docker 镜像,如何将所有这些镜像传递到模板。这样传递会创建40 个不同的pod 吗?因为我们需要 40 个不同的 pod。任何指导都将受到高度赞赏。
仅关注图像和模板,您可以创建一个 helm 模板,该模板将通过以下方式生成 X 数量的 pod:
\n\nChart.yaml文件values.yaml使用存储所有图像名称的变量创建文件{{ range }}使用指令创建模板下面是文件和目录的结构:
\n\n\xe2\x9d\xaf tree helm-dir\nhelm-dir\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 pod.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n\n1 directory, 3 files\nRun Code Online (Sandbox Code Playgroud)\n\nChart.yaml文件以下是Chart.yaml文件:
apiVersion: v2\nname: helm-templates\ndescription: A Helm chart for spawning pods from images\nversion: 0.1.0\nRun Code Online (Sandbox Code Playgroud)\n\nvalues.yaml使用存储所有图像名称的变量创建一个文件下面是values.yaml具有不同图像名称的简单文件,将与模板一起使用:
different_images: \n - ubuntu \n - nginx\nRun Code Online (Sandbox Code Playgroud)\n\n{{ range }}创建一个带有指令的模板该模板存储在templates名为的目录中pod.yaml
以下YAML定义将是所有 Pod 的模板:
{{- range .Values.different_images }}\napiVersion: v1\nkind: Pod\nmetadata:\n name: {{ . }} \n labels:\n app: {{ . }} \nspec:\n restartPolicy: Never\n containers:\n - name: {{ . }} \n image: {{ . }} \n imagePullPolicy: Always\n command: \n - sleep \n - infinity\n---\n{{- end }} \nRun Code Online (Sandbox Code Playgroud)\n\n{{- range .Values.different_images }}将迭代变量并用图像名称different_images替换。{{ . }}
从目录运行以下命令helm-dir来检查YAMLpod 的 helm 定义是否已正确创建:
$ helm install NAME . --dry-run --debug
您应该获得具有多个 pod 定义的输出,类似于以下内容:
\n\n# Source: helm-templates/templates/pod.yaml\napiVersion: v1\nkind: Pod\nmetadata:\n name: ubuntu\n labels:\n app: ubuntu\nspec:\n restartPolicy: Never\n containers:\n - name: ubuntu\n ports:\n - containerPort: 3000\n image: ubuntu\n imagePullPolicy: Always\n command: \n - sleep \n - infinity\n resources:\n requests:\n memory: 500Mi\n cpu: 500m \nRun Code Online (Sandbox Code Playgroud)\n\n您现在可以运行:\n$ helm install NAME .
并检查 pod 是否正确生成$ kubectl get pods:
NAME READY STATUS RESTARTS AGE\nnginx 1/1 Running 0 8s\nubuntu 1/1 Running 0 8s\nRun Code Online (Sandbox Code Playgroud)\n\n请查看其他资源:
\n\n\n| 归档时间: |
|
| 查看次数: |
9557 次 |
| 最近记录: |