Рекомендации Kubernetes - предоставление доступа к произвольному количеству модулей в Интернете

Мое приложение требует произвольного количества модулей, чтобы предоставлять свои услуги в Интернете. Я не уверен, как лучше всего разрешить обнаружение этих модулей с внешнего сервера (назовем его клиентом).

Рабочий процесс состоит из внешнего сервера (клиента), запрашивающего развертывание "Мастерской" и предоставляющего идентификатор Мастерской. Затем Kubernetes создает развертывание и вместе с ним модуль с API, который клиент будет использовать для работы в контейнере модуля.

Клиент должен иметь возможность видеть все экземпляры модулей Workshop и определять, какой модуль принадлежит какой мастерской.

Я упростил фактическую инфраструктуру кубернетов. Он использует CRD и операторов для настройки более сложной инфраструктуры, но только API модуля и его обнаруживаемость должны беспокоить клиента. Как лучше всего подойти к этому?

1 ответ

Если API-интерфейсы HTTP, может быть, использовать вход? У вас есть только что входящий контроллер (например, traefik), доступный с помощью nodePort, и он заботится о проксировании для желаемой клиентской службы API. Если это не HTTP, вы можете настроить обратный прокси-сервер такого типа, например, с помощью nginx. Идея та же - единая конечная точка API для всех клиентов и забота о проксировании по субдомену или пути.

Об обнаружении - почему бы не предоставить клиенту файл kubeconfig с пространством имен?