Думаю, вы дали ответ;)
Я пошел в книгу Kubernetes Patterns (PDF-файл доступен бесплатно в здесь ), чтобы узнать, есть ли что-то связанное с этим там, и обнаружил, что именно:
To express, как модули должны быть распределены для достижения высокой доступности, или быть упакованы и размещены вместе, чтобы улучшить задержку, можно использовать сродство Pod и антиаффинность.
Привязка узлов работает на уровне детализации узлов, но привязка Pod не ограничивается узлами и может express правила на нескольких уровнях топологии. Используя поле topologyKey и соответствующие метки, можно применять более детальные правила, которые объединяют правила в таких доменах, как узел, стойка, зона облачного провайдера и регион [...]
Мне также очень нравятся документы k8s, они очень полны и полны примеров, так что, возможно, вы можете почерпнуть некоторые идеи из здесь . Я думаю, что основная идея будет заключаться в том, чтобы создать собственное правило аффинности / антиаффинности.
---------------------------- ------- РЕДАКТИРОВАТЬ -----------------------------------
В k8s версии 1.18 есть новая функция, которая может быть лучшим решением.
Она называется: Ограничения распространения топологии Pod :
Вы можете использовать ограничения распространения топологии, чтобы контролировать, как поды распределяются по кластеру между доменами отказа, такими как регионы, зоны, узлы и другие определяемые пользователем домены топологии. Это может помочь достичь высокой доступности, а также эффективного использования ресурсов.