Есть ли способ создания взаимозависимых модулей в кластере Kubernetes? - PullRequest
0 голосов
/ 01 апреля 2020

Есть ли способ создания взаимозависимых модулей в кластере kubernetes. Как в случае, если Pod A, работающий с определенным микро-сервисом, выходит из строя, то Pod B также отключается из-за этого. На самом деле у меня есть приложение, в котором есть определенные микро-сервисы, которые зависят от rabbitmq (который я запускаю как пакет и предоставляем как сервис для других пакетов (микро-сервисов) для потребления). Я ищу решение, в котором если мой контейнер rabbitmq выходит из строя, все остальные мои модули также должны остановиться из-за этого.

1 Ответ

0 голосов
/ 01 апреля 2020

Самое простое, что можно сделать здесь, - это просто иметь свой сервис sh, если он не может достичь RabbitMQ или другой зависимости.

Kubernetes немедленно перезапустит его, и если причина сбоя была сетевое сообщение, все снова будет хорошо. Но если RabbitMQ на самом деле не работает, модуль снова будет обрабатывать sh, и после нескольких попыток модуль будет в состоянии CrashLoopBackOff; Kubernetes сделает паузу, прежде чем пытаться перезапустить его.

В этот момент ваш RabbitMQ будет отсутствовать, а на ваших различных модулях будет отображаться CrashLoopBackOff. Если вы посмотрите на такие вещи, как kubectl get pods, вы скажете «подождите, что-то действительно не так», и kubectl logs на отдельном модуле, вероятно, будет иметь довольно четкий след: «Не удалось подключиться к RabbitMQ».

После восстановления RabbitMQ произойдет (в конце концов) перезапуск автомата c, и вся система снова включится сама.

...