[英]Create an identical pod using different values
我目前使用 Skaffold 在 k8s 上部署了一个应用程序。 使用 Helm,我将主要的deployment.yaml
清单定义为模板,并使用values.yaml
将其他值插入到该部署模板中。
我想做的是使用values.yaml
文件中的不同值对同一应用程序进行 2 次部署。 因此,除了提供的不同值之外,基本上 2 个 pod 运行相同的应用程序,例如my-app-blue
pod 和my-app-green
pod。 无论如何我可以做到这一点而不必使用全新的deployment.yaml
文件? 抱歉,我是 K8s、Helm 和 Skaffold 的新手。
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Values.namespace }}
name: {{ .Values.name }}
spec:
replicas: {{ .Values.blue-deployment.replicas }}
template:
spec:
containers:
- name: {{ .Values.blue-deployment.name }}
image: {{ .Values.blue-deployment.image }}
值.yaml
namespace: my-app
name: app
blue-deployment:
name: blue
image: my-image
replicas: 1
env:
- name: COLOR
value: 'blue'
green-deployment:
name: green
image: my-image
replicas: 1
env:
- name: COLOR
value: 'green'
脚手架.yaml
apiVersion: skaffold/v2beta
kind: Config
build:
artifacts:
- image: blue-deployment
context: './'
deploy:
- name: my-application
chartPath: kubernetes
valuesFiles:
- kubernetes/values.yaml
namespace: my-app
目录结构:
myApp/
kubernetes/
templates/
myApp/
deployment.yaml
values.yaml
skaffold.yaml
Dockerfile
只需使用一个循环。 掌舵范围
值.yaml
namespace: my-app
name: app
deps:
- name: blue
image: my-image
replicas: 1
env:
- name: COLOR
value: 'blue'
- name: green
image: my-image
replicas: 1
env:
- name: COLOR
value: 'green'
部署.yaml
{{- $i, $v := range .Values.deps}}
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Values.namespace }}
name: {{ $v.name }}
spec:
replicas: {{ $v.replicas }}
template:
spec:
containers:
- name: {{ $v.name }}
image: {{ $v.image }}
{{- end }}
输出
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: my-app
name: blue
spec:
replicas: 1
template:
spec:
containers:
- name: blue
image: my-image
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: my-app
name: green
spec:
replicas: 1
template:
spec:
containers:
- name: green
image: my-image
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.