Назад | Перейти на главную страницу

Обновление образа в модулях развертывания

у меня есть 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

Есть ли способ сделать это автоматически? Следует ли мне запустить такую ​​команду, как rolling-update как в ReplicaControllers?

Нет причин извлекать последний образ с точки зрения Kubernetes - он уже доступен в системе, а модули находятся в объявленном состоянии. Используйте правильную маркировку изображений, и все будет в порядке.

Есть некоторые обходные пути, основанные на imagePullPolicy: Always, но они мне не нравятся: https://stackoverflow.com/questions/33112789/how-do-i-force-kubernetes-to-re-pull-and-image