Kubernetes: - image-pull-policy始终不起作用

Den*_*boy 10 kubernetes dockerhub

我有一个使用image的Kubernetes部署:( test:latest不是真实的图像名称,但它是最新的标签).此图像位于docker hub上.我刚推送了一个新版本的test:latestdockerhub.我期待在Kubernetes中重新部署我的pod,但没有任何事情发生.

我已经像这样创建了我的部署:

kubectl run sample-app --image=`test:latest` --namespace=sample-app --image-pull-policy Always
Run Code Online (Sandbox Code Playgroud)

为什么在推送新图像后没有触发新的部署?

Jan*_*art 10

Kubernetes 没有关注图像的新版本.图像拉取策略指定如何获取图像以运行容器.Always意味着它会在每次启动容器时尝试拉出新版本.要查看更新,您需要删除Pod(而不是部署) - 新创建的Pod将运行新映像.

没有直接的方法让Kubernetes使用新图像自动更新正在运行的容器.这将是连续传送系统的一部分(可能使用kubectl set image新的sha256sum或图像标签 - 但不是latest).


Ian*_*cer 10

强制更新的一种方法是在 CI 脚本中运行此命令(在推送新映像并在应用的 yaml 中image-pull-policy设置为之后):Always

kubectl rollout restart deployment/<name> --namespace=<namespace>

在 Azure Devops 中输入“rollout”作为命令,使用上面的命名空间功能并在参数字段中输入“restart ...”。