Как добавить зависимость pod в kubernetes, например, «depends_on» в docker-compose.yml

Мне нужно запускать модули kubernetes в такой последовательности, как pod2 должен запускаться только тогда, когда pod1 запущен и работает.

мы можем сделать это в docker-compose.yml, используя depends_on


person sam    schedule 17.05.2018    source источник
comment
возможный дубликат stackoverflow.com/questions/50324677/, см. пункт 2) в исходном вопросе.   -  person Const    schedule 17.05.2018


Ответы (3)


Нет, нет встроенного управления зависимостями, эквивалентного depends_on. Как правило, мы предполагаем слабосвязанные сервисы, и в качестве хорошей практики не должно быть жесткой зависимости с точки зрения порядка запуска, но следует использовать повторные попытки и тайм-ауты. Если вам нужно жестко закодировать зависимости, вы можете использовать контейнеры инициализации. В вашем случае контейнер инициализации в pod2 может просто запросить, готов ли pod1 (или лучше: служба перед ним) в цикле while. Основной контейнер в pod2 гарантированно будет запущен только в том случае, если и когда контейнер инициализации успешно завершится.

person Michael Hausenblas    schedule 17.05.2018

Не существует прямого эквивалента зависимости с примитивами Kubernetes, в качестве обходного пути вы можете реализовать проверку готовности, которая сделает pod2 непригодным для использования, пока не обнаружит, что pod1 запущен и работает.

person itaysk    schedule 06.07.2018

Вы можете использовать этот pod-dependency-init-container, который я создал. Это проверит, запущен ли какой-либо модуль с заданным labels перед запуском вашего модуля.

person Yogesh    schedule 10.09.2018