Как в Kubernetes выполнить деплой контейнера с новым кодом?
Нужно выполнять деплой изменений кода при том что мы используем PHP и Nginx в двух разных контейнера в Kubernetes кластере.
Мои шаги:
Выполняю build:
docker build -t myrepository/nginx:latest .
Далее выполняю push изменений в Docker Hub:
docker push myrepository/nginx:latest
Так выглядит Image в моём k8s деплойменет(тег latest) :
image: myrepos/nginx:latest
Далее запускаю:
kubectl apply -f deployment.yaml
Код остается прежним (если изменить тег на новую версию например myrepository/nginx:v7 - код измениться на новый, если оставить в deployment.yaml тег latest: myrepository/nginx:latest - новые изменения НЕ будут применены).
Если ни один параметр деплоймента не изменился, куб не будет выполнять обновление под. Одна из причин почему строго не рекомендуется использовать тег latest.
Костылем будет при каждом деплое что-то менять в деплоймента, например значение лейбла в темплейте пода