我有一个Deployment
,其中包含3个运行图像172.20.20.20:5000/my_app
的广告连播的副本,位于我的私人注册表中。
当我将该图像的新latest
版本推送到我的注册表时,我想在部署中进行滚动更新。
我以这种方式推送新图像(标记v3.0到最新版本):
$ docker tag 172.20.20.20:5000/my_app:3.0 172.20.20.20:5000/my_app
$ docker push 172.20.20.20:5000/my_app
但没有任何反应。荚'图像未升级。这是我的部署定义:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: app
image: 172.20.20.20:5000/my_app:latest
ports:
- containerPort: 8080
有没有办法自动完成?我应该像ReplicaControllers一样运行像rolling-update
这样的命令吗?
答案 0 :(得分:1)
为了upgrade a Deployment,您必须使用新映像修改部署资源。例如,将172.20.20.20:5000/my_app:v1更改为172.20.20.20:5000/my_app:v2。由于您只是在Docker注册表中修改图像并没有注意到更改。
如果您(手动)终止各个Pod,则部署将重新启动它们。由于部署映像指定了最新的"标签Kubernetes将下载最新版本(现在" v3"在您的情况下)由于隐含"Always" ImagePullPolicy。