@paqquete

Как обращаться к сервисам внутри кластера k8s?

Добрый день! Сразу извиняюсь за некоторую сумбурность вопроса (ведь если бы мог его сформулировать правильно - соотв. мог бы уже сам найти иноформацию).

Использую Kubernates (а если быть точнее, то управление им осуществляется в truenas scale, т.е. напрямую я не настраиваю кластер).
Появилась задача поднять один веб-сервис и nginx перед ним с самопод. SSL. (truenas scale у нас в локалке, поэтому самоподп. серт и поэтому nginx-proxy-manager не подходит - там только запрашивать серт у let's encrypt)

Встал на вопросе - как правильно обращаться к своему веб-сервису?
В разворачивании через docker-compose я бы просто написал в конфиге nginx
location / {
    proxy_pass http://name_of_app:port;
}

где name_of_app - это имя сервиса в docker compose, и внутри сети докера это бы прекрасно разрулилось.
А как это правильно сделать в кубере? Кажется, что обращаться по ip конкретного контейнера не очень правильно (исхожу из сущностей кубера, что есть сервисы, в сервисах есть поды, в подах уже контейнеры) - а если кубер решит поднять больше реплик нужного мне веб-сервиса, а в nginx я бду рулить всё на один контейнер?

Прошу совета, в каком-то месте я заблуждаюсь, но в каком - пока не понял. Спасибо!
  • Вопрос задан
  • 400 просмотров
Решения вопроса 2
paran0id
@paran0id
Умный, но ленивый
<service name>.<namespace>.svc.cluster.local
Обычно там в dns прописан search на svc.cluster.local и cluster.local, так что можно без них. Если они в одном неймспейсе, то можно и неймспейс не указывать, только имя сервиса. Обратите внимание, что имя сервиса может отличаться от имени деплоймента или контейнера с приложением.
Ответ написан
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Для этого есть ingress controller, который сам разберется-как обращаться к опубликованным сервисам внутри инфры K8s.
Либо можно опубликовать порт на конкретной ноде через Node Port.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы