我是Kubernetes的新手,我们有一些Helm图表,用于使用Kubernetes对各种不同的环境实施监控堆栈。我正在更新helm图表版本,其中一个版本需要重新创建部署。
我试着逃跑kubectl delete deployment <deploymentname>
然后实现更新,这会起作用,但我需要一种从.yaml文件触发部署创建的方法,以便在我运行管道时在所有环境中触发它,而不是手动删除部署。
我还尝试添加注解,如
annotations:
kubectl.kubernetes.io/restartedAt:
但没有用。
我得到的错误:
13:40:55 2023-02-22 13:40:55,354 - ERROR -
Command 'kubectl --kubeconfig=/tmp/tmpxv384dq8 apply --validate=False
-f /tmp/tmp9ku4lg20' failed with: The Deployment "pgw-prometheus-pushgateway"
is invalid: spec.selector: Invalid value:
v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"pgw",
"app.kubernetes.io/name":"prometheus-pushgateway"},
MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
1条答案
按热度按时间kadbb4591#
如果我理解正确的话,您有许多Kubernetes应用程序通过Helm Charts管理,并且您希望其中一个应用程序被“强制”重新启动。
我猜这是您的请求,因为如果应用程序的.yaml值没有“重大”更改,Helm Upgrade命令不会触发新版本的重新部署/部署。
要确保在执行每个升级命令时重新引导,可以通过添加以下内容来修改部署模板:
https://v3.helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments