Можно ли сделать поды StatefulSet для запуска разных изображений приложений в Kubernetes?

Я хочу создать StatefulSet, в котором я хочу, чтобы мой первый модуль (то есть индекс испытания 0) вел себя как маршрутизатор (приложение маршрутизации) для модулей, начиная с индекса испытания 1 (приложение обслуживания).

Я новичок в Kubernetes StatefulSets и все еще пытаюсь понять их использование в реальных приложениях. Пожалуйста, дайте мне знать, если я пробую что-то, чего мне не следует делать с точки зрения дизайна, или я должен попробовать что-то еще для выполнения моих требований. Спасибо, J


person Jaraws    schedule 15.02.2020    source источник
comment
Не могли бы вы подробнее рассказать о сценарии использования? Почему бы маршрутизатору не быть отдельным развертыванием?   -  person johnharris85    schedule 15.02.2020
comment
@ johnharris85, я не хочу, чтобы мои обслуживающие приложения появлялись, пока не появится приложение маршрутизации. И, если развертывание приложения маршрутизации завершается неудачей, развертывание обслуживающих приложений также не должно происходить.   -  person Jaraws    schedule 15.02.2020
comment
Я бы, вероятно, спроектировал приложение таким образом, чтобы оно повторяло или изящно обрабатывало сбои связанных частей, вместо того, чтобы пытаться использовать эти ограничения в примитивах Kubernetes.   -  person johnharris85    schedule 16.02.2020


Ответы (1)


У вас не может быть двух модулей с одинаковыми наборами состояний, запускающих разные изображения. В одном модуле можно запускать два разных изображения, и он будет одинаковым для всех модулей вашего набора состояний. Вам нужно создать два разных statefulsets или ваше приложение, для которого требуется постоянство как statefulset, а другое как deployment. Дополнительную информацию см. В документации https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#limitations.

person anmol agrawal    schedule 15.02.2020