Я пытаюсь запустить развертывание моего приложения NodeJS в EKS с ReplicaSet, указывающим, что приложение должно быть запущено 3 модуля. Однако я пытаюсь сделать некоторую логику эксклюзивной для одного из модулей, называя его «главной» версией приложения.
Возможно ли либо а) передать другую среду, например IS_MASTER, только этому модулю, либо иным образом сообщить из приложения, что оно работает на «главном модуле» без нескольких развертываний?





Вы можете иметь липкую идентификацию для каждого модуля, используя StatefulSets.
https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
Цитирование документов
Как и развертывание, StatefulSet управляет модулями, основанными на идентичной спецификации контейнера. В отличие от развертывания, StatefulSet поддерживает фиксированную идентичность для каждого из своих модулей. Эти модули созданы на основе одной и той же спецификации, но не являются взаимозаменяемыми: у каждого есть постоянный идентификатор, который сохраняется при любом изменении расписания.
Поды будут иметь имена хостов foo-{0..N-1} с учетом N реплик, вы можете выполнить некоторую проверку для мастера, например, если имя хоста foo-0, то это мастер.
Если главный модуль будет заменен, будет ли он по-прежнему иметь то же имя хоста с индексом 0?