Я следил за несколькими гидами, и у меня есть CI, настроенный с помощью Google Container Engine и Google Container Registry. Проблема заключается в том, что мои обновления не применяются к развертыванию.Как обновить развертывание Kubernetes в Google Container Engine?
Так что это мой deployment.yml, который содержит службу Kubernetes и развертывание:
apiVersion: v1
kind: Service
metadata:
name: my_app
labels:
app: my_app
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 3000
selector:
app: my_app
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my_app
spec:
replicas: 1
template:
metadata:
labels:
app: my_app
spec:
containers:
- name: node
image: gcr.io/me/my_app:latest
ports:
- containerPort: 3000
resources:
requests:
memory: 100
- name: phantom
image: docker.io/wernight/phantomjs:2.1.1
command: ["phantomjs", "--webdriver=8910", "--web-security=no", "--load-images=false", "--local-to-remote-url-access=yes"]
ports:
- containerPort: 8910
resources:
requests:
memory: 1000
В рамках моего процесса CI я запускаю скрипт, который обновляет изображение в Google Cloud реестре, затем запускает kubectl apply -f /deploy/deployment.yml
. Обе задачи добиться успеха, и я уведомила развертывание и обслуживание было обновлено:
2016-09-28T14:37:26.375Zgoogleclouddeploymentservice "my_app" configured
2016-09-28T14:37:27.370Zgoogleclouddeploymentdeployment "my_app" configured
Поскольку я включил :latest
тег на мой образ, я думал, что изображение будет downloaded each time развертывание обновляется. В соответствии с docs a RollingUpdate
также должна быть стратегией по умолчанию.
Однако, когда я запускаю свой CI-скрипт, который обновляет развертывание - обновленное изображение не загружается и изменения не применяются. Что мне не хватает? Я предполагаю, что, поскольку ничего не меняется в deployment.yml
, обновление не применяется. Как я могу получить Kubernetes для загрузки моего обновленного изображения и использовать RollingUpdate
для его развертывания?
Быстрый бит дополнительной информации: я знаю, что его лучшая практика включает версию в конце имени изображения, но с нашей настройкой, которая потребует изменений в нескольких файлах и будет болью. Поэтому мы рады сохранить нашу ветку git как источник истины для того, что в настоящее время развернуто, и просто откат ветки, если нам нужно вернуться к версии. –