Автоматическое развертывание в лазурном Куберне при обновлении образа докера: возможно? - PullRequest
0 голосов
/ 24 июня 2019

Я создал приложение с помощью службы kubernates в Azure.В моем yaml я указывал «последний» в качестве версии изображения для каждого изображения, которое я использую.

Есть ли возможность сделать так, чтобы при обновлении реестра изображений, чтобы «последние» изменялись, kubernates автоматическиразвертывает это?И все управляется так, что он обновляет только одну реплику, а затем масштабируется, чтобы служба не прерывалась во время развертывания?

Ответы [ 3 ]

2 голосов
/ 24 июня 2019

Есть ли возможность сделать так, чтобы, когда я обновлял реестр образов, чтобы "последние" изменения, kubernates автоматически развертывал это?

Это не работа Кубернетеса, чтобы справиться с этим,Над этим можно работать двумя способами:

  • Добавить webhook в реестр Docker, для Docker-Hub это Docker Hub Webhooks .Когда новое изображение было передано в реестр, вы можете отправить запрос POST куда-нибудь в качестве уведомления.

  • Разверните CI / CD для получения этого уведомления и обновите приложение.Или просто создайте простой HTTP-сервер для обработки запроса на уведомление и выполните что-то вроде kubectl ....

И все управляется так, что он обновляет только одну реплику, а затем масштабируется так, чтобыслужба не прерывается во время развертывания?

Kubernetes обрабатывает это с помощью непрерывного обновления .Для Deployment или StatefulSet, текущих модулей автоматического обновления kubernetes с помощью обновляемого обновления, все, что вам нужно сделать, это kubectl apply -f new-spec.yaml.

0 голосов
/ 24 июня 2019

вы действительно должны использовать управление релизами для этого или что-то вроде gitops, которые будут запускать обновления, когда доступна новая версия контейнера.использовать Azure Functions \ Automation для этого просто неправильно.Это не предназначено для этого, это было бы сложно \ ненадежно.

0 голосов
/ 24 июня 2019

Kubernetes не знает об изменениях в вашем реестре, он не отслеживает новые образы контейнеров.Вам потребуется создать процесс, который запускается при выпуске новой версии и обновлении вашего развертывания в Kubernetes.Для этого вы можете использовать инструменты CI / CD или такие вещи, как функции Azure, Azure Automation и т. Д.

Для развертывания без простоя вы можете захотеть взглянуть на обновляемые обновления.

...