Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 舵手升级不需要';不要拉新的集装箱_Kubernetes_Continuous Integration_Devops_Kubernetes Helm - Fatal编程技术网

Kubernetes 舵手升级不需要';不要拉新的集装箱

Kubernetes 舵手升级不需要';不要拉新的集装箱,kubernetes,continuous-integration,devops,kubernetes-helm,Kubernetes,Continuous Integration,Devops,Kubernetes Helm,我构建了一个简单的NodeJSAPI,将Docker映像推送到一个repo,并使用Helm安装将其部署到我的k8s上(工作非常好) pullPolicy始终是 现在我想更新源代码并部署我的应用程序的更新版本。我在所有文件中修改了版本,创建并推送了新的Docker映像,并尝试了helm升级,但似乎什么都没发生。 通过helmlist我可以看到修订版已经部署,但是对源代码的更改没有部署。 watch kubectl get pods还显示,没有按照您所期望的方式创建新的pods,kubectl--a

我构建了一个简单的NodeJSAPI,将Docker映像推送到一个repo,并使用Helm安装将其部署到我的k8s上(工作非常好)

pullPolicy始终是

现在我想更新源代码并部署我的应用程序的更新版本。我在所有文件中修改了版本,创建并推送了新的Docker映像,并尝试了
helm升级
,但似乎什么都没发生。 通过
helmlist
我可以看到修订版已经部署,但是对源代码的更改没有部署。
watch kubectl get pods
还显示,没有按照您所期望的方式创建新的pods,
kubectl--apply…


我做错了什么?

只有在有更改要转出时,头盔才会转出对kubernetes对象的更改。如果您使用
:latest
没有要应用于部署文件的更改,因此不会有pods滚动更新。要继续使用
最新版本
,您需要添加一些内容(即使用sha/版本的标签),这些内容将发生更改,并导致helm更新部署。还要记住,您通常也需要
ImagePullPolicy:Always

我在.gitlab.yaml中的部署脚本中解决了这个问题,您可以在任何部署脚本中执行类似的操作

export SAME_SHA=$(helm get values service-name | grep SHA | wc -l)

if [ SAME_SHA -eq 1] then helm uninstall service-name; fi

helm upgrade --install service-name -f service-values.yml .
这可能不是生产的最佳方法,因为您可能最终会卸载一个实时服务,但对我来说,生产sha从来都不一样,所以这是可行的。

请参阅中的建议解决方案