Как получить доступ к rest api (развернутому в кластере k8) через имя службы

#rest #go #kubernetes #kubernetes-pod

#rest #Вперед #kubernetes #kubernetes-pod

Вопрос:

Развернул rest API (go lang) в кластере kubernetes, а также создал службу для модуля.

мне нужно получить доступ к rest API через имя службы или URL-адрес службы?

Ответ №1:

Это зависит от того, откуда вы получаете доступ к сервису.

Если вы получаете доступ с узлов кластера kubernetes, вы можете получить доступ через service IP; curl <service-ip> должен предоставить доступ к вашему rest API.

Если вы обращаетесь к службе из другого модуля, вы можете использовать внутреннее разрешение DNS kubernetes. Что-то вроде curl <service-name>.<namespace>.svc.cluster.local должно получить доступ к вашему rest API.

Если вы хотите получить доступ к rest API за пределами кластера, вам понадобится балансировщик нагрузки с IP-адресом внешней сети кластера (сети, в которой находится кластер). Если вы развернули кластер локально, вы можете рассмотреть возможность использования metallb для управления внешними IP-адресами. Если кластер развернут в облаке, вы можете использовать предоставленные облаком IP-адреса.

Комментарии:

1. Это сработало, когда я использовал IP-адрес службы curl. Но curl возвращает ошибку в ‘<service-name>.<namespace>.svc.cluster.local’. Ошибка следующего вида: curl: (6) Не удалось разрешить узел: app2-service.default.svc.cluster.local; Неизвестная ошибка.

2. есть ли какой-либо способ получить доступ к службе с именем службы?