我有一个使用图像的Kubernetes部署:test:latest
(不是真实的图像名称,但这是最新的标签)。该图像位于docker hub上。我刚刚将test:latest
的新版本推送到dockerhub。我原本希望在Kubernetes中重新部署我的Pod,但没有任何反应。
我已经这样创建了部署:
kubectl run sample-app --image=`test:latest` --namespace=sample-app --image-pull-policy Always
为什么在推送新映像后没有触发新部署?
Kubernetes是not正在监视图像的新版本。映像拉取策略指定如何获取映像以运行容器。 Always
表示它将在每次启动容器时尝试拉出新版本。要查看更新,您需要删除Pod(而不是Deployment)-新创建的Pod将运行新映像。
没有直接的方法让Kubernetes用新映像自动更新正在运行的容器。这将是连续交付系统的一部分(也许将kubectl set image
与新的sha256sum或图像标签一起使用-但不使用latest
)。
如果使用yml文件,请使用]执行部署>
kubectl apply -f myfile.yml
和
imagePullPolicy: Always
在您的文件上,k8s不会提取新图像。您首先需要删除吊舱,K8s部署将自动拉取映像。