Повторное развертывание приложения Django в Google Kubernetes Engine (GKS) - PullRequest
1 голос
/ 26 апреля 2019

Я следовал этому руководству: https://cloud.google.com/python/django/kubernetes-engine о том, как развернуть приложение Django в GKE.

К сожалению, я допустил ошибку при развертывании приложения, и один из моих трех модулей в кластере не появился.Я считаю, что исправил ошибку, и теперь хочу заново развернуть приложение.

Я не могу понять, как это сделать, или я не исправил ошибку, и поэтому она все еще вошибка.Я не знаю, как диагностировать, если это так ...

После исправления моего Dockerfile я пересобрал и снова отправил в Реестр контейнеров Google.Казалось, что оно обновляется, но я не знаю, как отследить такого рода развертывание.

Как работает традиционная модель продвижения новой версии приложения и отката в GKE?

Редактировать: проблема, с которой я столкнулся, заключается в том, что я обновил settings.py в своем приложении Django, но это не распространяется на мой кластер

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

Обычным способом было бы выдвинуть новое изображение с новым тегом, а затем отредактировать тег изображения контейнера в развертывании (https://github.com/GoogleCloudPlatform/python-docs-samples/blob/78d8a59d59c5eca788495666b43283534a50b7ee/container_engine/django_tutorial/polls.yaml#L42),, а затем повторно применить файл (kubectl apply -f polls.yml). Однако, поскольку их Пример не использует теги изображений (читай: неявно использует тег latest), тогда вам просто нужно удалить существующие модули и принудительно перезапустить все три. Быстрый способ сделать это - kubectl delete pod -n app=polls.

0 голосов
/ 27 апреля 2019

Вы можете удалять модули для обновления приложения, но делать это просто для обновления приложения не выгодно в производственном процессе, поскольку это приводит к простоям при запуске новых модулей.

В производственной среде вы должны запустить непрерывное обновление развертывания, которое оставляет старую версию на месте до тех пор, пока новая версия не будет готова, а затем переключается на новую версию. Для запуска обновления развертывания вы можете воспользоваться этой командой:

kubectl -n NS patch deploy DEPLOYMENT_NAME -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"

Я знаю, это выглядит ужасно, но до сих пор с таким количеством кластеров и приложений Kubernetes я не нашел ничего лучшего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...