Есть несколько решений, о которых я могу подумать, и у других, возможно, есть больше идей.
1) Используйте балансировщик нагрузки. Вы можете настроить балансировщик нагрузки или настроить существующий для перенаправления порта на порт узла всех рабочих узлов в вашем кластере k8s. Затем вы можете вызвать бэкэнд через этот балансировщик нагрузки.
2) Использовать вход. Вход, вероятно, уже имеет балансировщик нагрузки перед ним, и это может быть легче реализовать. При входе вам не нужен NodePort. Вы можете напрямую подключить модули из входа или добавить службу перед каждой и подключиться к ней.
У вас есть несколько модулей в бэкэнде, и они кажутся равноправными узлами в блокчейне, а нереплики того же стручка. Если вам нужно создать три отдельных конечных точки, чтобы вы могли контролировать, какой узел вы подключаете, будет работать вход с тремя прокси, подключенными к этим модулям.
Если вам все равно, какой узел вы подключаете, вы можете добавить службу перед тремя модулями в качестве балансировщика нагрузки. Вы можете добавить общую метку ко всем трем одноранговым узлам, и ваша служба выберет пункт назначения, используя эту метку, поэтому, когда вы обращаетесь к службе, она действует как балансировщик нагрузки между равноправными узлами. Затем вы можете открыть эту службу через вход.