我正在尝试使用 Istio 实现金丝雀部署,但首先我必须部署旧版本中的图表 pod(已设法做到)和新版本中的图表 pod。
我创建了图表的新版本。图表已成功创建。
现在我尝试使用
helm install
命令将新版本与旧版本并排部署。my-release-v2
但我收到一个错误,指出 release name in the chart must match the release name
。values.yaml
中覆盖它吗 - 具体如何?这是最佳实践吗?
好的,我知道这个案例对某人有帮助。
发布名称应该是唯一的。一个好的做法是在
Chart.AppName.fullname
命令中使用我们的应用程序名称 helm install
以及预期版本。
然后,我们可以对部署 Pod 的 Deployment
对象使用相同的做法,因此它对于版本来说是唯一的。 (相关部分在deployment.yaml
)
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include ".Chart.Name.fullname" . }}-{{ .Chart.AppVersion }}
当然,对于
Istio
中的未来选择器,请在 pod 中创建版本标签(deployment.yaml
中的相关部分):
apiVersion: apps/v1
kind: Deployment
spec:
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
app.kubernetes.io/version: {{ .Chart.AppVersion }}