Kubernetes 当存储库映像更改时重新部署Google容器控制器
我是否有办法复制cloud.docker上的行为,在cloud.docker中,可以使用最新映像手动重新部署服务,也可以在更新存储库映像时自动重新部署服务 现在,我正在使用控制器和服务文件在shell脚本中手动执行类似操作:Kubernetes 当存储库映像更改时重新部署Google容器控制器,kubernetes,Kubernetes,我是否有办法复制cloud.docker上的行为,在cloud.docker中,可以使用最新映像手动重新部署服务,也可以在更新存储库映像时自动重新部署服务 现在,我正在使用控制器和服务文件在shell脚本中手动执行类似操作: kubectl delete -f ./ticketing-controller.yaml || true kubectl delete -f ./ticketing-service.yaml || true kubectl create -f ./ticketing-co
kubectl delete -f ./ticketing-controller.yaml || true
kubectl delete -f ./ticketing-service.yaml || true
kubectl create -f ./ticketing-controller.yaml
kubectl create -f ./ticketing-service.yaml
即使这样看起来也有点笨手笨脚,但效果很好。我真的错过了cloud.docker上的自动重新部署功能。根据:
假设您运行的是nginx的1.7.9版:
$ kubectl run my-nginx --image=nginx:1.7.9 --replicas=3
deployment "my-nginx" created
要更新到1.9.1版,只需更改
.spec.template.spec.containers[0]。图像
fromnginx:1.7.9
to
nginx:1.9.1,使用kubectl命令
$ kubectl edit deployment/my-nginx
就这样!部署将以声明方式更新部署的nginx
应用程序在幕后逐步进行。它确保只有
某些旧复制副本在运行时可能会停机
已更新,并且只能创建一定数量的新副本
高于所需的豆荚数
根据:
假设您运行的是nginx的1.7.9版:
$ kubectl run my-nginx --image=nginx:1.7.9 --replicas=3
deployment "my-nginx" created
要更新到1.9.1版,只需更改
.spec.template.spec.containers[0]。图像
fromnginx:1.7.9
to
nginx:1.9.1,使用kubectl命令
$ kubectl edit deployment/my-nginx
就这样!部署将以声明方式更新部署的nginx
应用程序在幕后逐步进行。它确保只有
某些旧复制副本在运行时可能会停机
已更新,并且只能创建一定数量的新副本
高于所需的豆荚数
删除控制器yaml文件本身不会删除kubernetes中的实际控制器,除非您有特殊配置这样做。如果有多个实例正在运行,那么删除控制器可能不是您想要的,因为它会删除正在运行的应用程序的所有实例。您真正想要做的是对应用程序执行滚动更新,以增量方式将运行旧映像的容器替换为运行新映像的容器 您可以通过以下方式手动执行此操作:
部署
控制器,更新yaml文件映像并执行kubectl apply
ReplicationController
更新yaml文件并执行kubectl rollingupdate
。见:kubectl set image
- 红帽OpenShift
- 纺纱机
- Deis工作流
部署
控制器,更新yaml文件映像并执行kubectl apply
ReplicationController
更新yaml文件并执行kubectl rollingupdate
。见:kubectl set image
- 红帽OpenShift
- 纺纱机
- Deis工作流