Доступ к информации о наборе реплик из модуля
Я хочу получить доступ к количеству реплик, а также к текущему идентификатору реплики для данного модуля изнутри самого модуля. Например, если существует 3 реплики любого заданного модуля, скажем, foo_A, foo_B и foo_C, созданные в этом конкретном порядке, возможно ли, чтобы общее количество реплик и индекс модуля в наборе реплик были доступны в этом модуле?
Также я понимаю, что при уничтожении старых модулей и появлении новых индекс модуля в наборе реплик может динамически изменяться.
Я знаю, что этого можно добиться с помощью Downward API, но к каким полям получить доступ? Может ли кто-нибудь помочь?
1 ответ
Как упоминалось в комментариях, вы можете использовать StatefulSets:
Модули StatefulSet Pods имеют уникальную идентичность, которая состоит из порядкового номера, стабильной сетевой идентичности и стабильного хранилища. Идентификатор остается за модулем независимо от того, на каком узле он (повторно) запланирован.
Как вы можете видеть здесь, ваши поды будут созданы в порядковой последовательности:
- Для StatefulSet с N репликами при развертывании модулей они создаются последовательно, начиная с {0..N-1}. Когда поды удаляются, они завершаются в обратном порядке, начиная с {N-1..0}.
- Прежде чем операция масштабирования будет применена к модулю, все его предшественники должны быть запущены и готовы.
- Перед завершением работы пода все его преемники должны быть полностью остановлены.