升级 Deployment Pod 中的镜像

升级 Deployment Pod 中的镜像

我有一个Deployment运行该图像的 pod 的 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

但什么也没发生。Pod 的镜像没有升级。这是我的部署定义:

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

有没有办法自动完成此操作?我应该像rolling-update在 ReplicaControllers 中那样运行命令吗?

答案1

从 Kubernetes 的角度来看,没有必要提取最新镜像 - 它已经在系统上可用,并且 pod 处于声明状态。使用适当的镜像标记就可以了。

有一些基于的解决方法imagePullPolicy: Always,但在我看来我不喜欢它们: https://stackoverflow.com/questions/33112789/how-do-i-force-kubernetes-to-re-pull-and-image

相关内容