Я не думаю, что развертывание может помочь вам в этой ситуации, но StatefulSet может также помочь с некоторыми изменениями в вашем приложении.
Поскольку StatefulSet всегда создает модули с некоторыми соглашениями об именах, и они придерживаются его, даже если онивоссозданы.Модули обычно называются -INDEX, как mypod-1, mypod-2 и т. Д.
Так что используйте его, выделите первые 3 модуля для двух компонентов, отключив третий компонент.Используйте переменную среды имени модуля и, если имя модуля не соответствует индексу 4, отключите третий компонент (эта логика должна быть в вашем приложении), а для имени модуля с индексом 4 отключите первые два компонента.
Вы можетеиспользуйте имя модуля в качестве переменной env, используя приведенную ниже конфигурацию,
- name: Pod_Name
valueFrom:
fieldRef:
fieldPath: metadata.name