升级部署的豆荚
问题描述:
我有一个Deployment
3副本运行图像172.20.20.20:5000/my_app
荚的图像,位于在我的私人注册表。升级部署的豆荚
我想要做一个滚动更新的部署时,我推新latest
版本图像到我的注册表。
我推新形象这种方式(标签3.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
的命令吗?
答
为了upgrade a Deployment您必须修改与新的图像部署资源。因此,例如,将172.20.20.20:5000/my_app:v1更改为172.20.20.20:5000/my_app:v2。由于您只是在Docker注册表中修改映像,因此不会注意到此更改。
如果(手动)杀个人吊舱,部署将重新启动它们。由于部署映像指定“最新”标签,Kubernetes将下载最新版本(现在称为“v3”),因为暗含的"Always" ImagePullPolicy。
谢谢。它帮了我很多:) –
然后,如果我想自动执行更新过程,是否需要手动杀死Pod?真?请检查此:http://*.com/questions/36920171/how-can-i-edit-a-deployment-without-modify-the-file-manually –
@bigdestroyer不,如果您使用不同的图像版本的部署将为您处理所有事情。令人困惑的是,由于您没有指定任何标签,因此您将新版本推送到注册表为'最新'。 –