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