Перезапуск завершенных модулей заданий k8 после перезапуска кластера aws - PullRequest
0 голосов
/ 05 августа 2020

У меня есть модуль заданий k8s, который отправляет вызов rest в микросервис для инициализации redis при развертывании сервиса с kubectl apply. Но при перезапуске кластера aws модуль заданий k8s не обновляется, так как он находится в состоянии завершения и перезапускаются только модули микросервисов.

Как я могу перезапустить модуль завершенных заданий с кластером aws перезапустить?

1 Ответ

0 голосов
/ 05 августа 2020

Kubernetes был разработан для обеспечения высокой доступности, чтобы работать без сбоев и простоев, поэтому «перезапуск кластера кубернетов» не является распространенным вариантом использования. Хотя я понимаю, что в некоторых случаях вы можете захотеть выключить кластер разработки на выходные, чтобы сэкономить деньги и надеяться, что когда вы запустите его, он вернется в свое предыдущее состояние.

Задания не могут быть перезапущены после завершения , поэтому это не лучший вариант.

Вы можете использовать развертывание и запустить свой инициализирующий скрипт (скрипт, который отправляет остальные вызовы) как initcontainer и после его завершения запускать приостановить контейнер (чтобы он не использовал ресурсы).

Итак, теперь, когда вы перезапускаете cluser, модуль инициализации будет запланирован, и контейнер инициализации будет запущен. Просто имейте в виду, что в этом случае, когда узел, на котором работает модуль, выходит из строя, модуль будет перенесен, и ваш инициализирующий модуль будет запущен снова. Это выглядит разумным вариантом, но вам нужно убедиться, что остальные вызовы идемпотентны.

Еще вы могли бы использовать redis oparator для обработки конфигурации за вас. Найдите операторы redis в этом списке операторов.

...