По умолчанию модули могут связываться друг с другом по своему IP-адресу независимо от пространства имен, в котором они находятся.
IP-адрес каждого модуля можно просмотреть с помощью:
kubectl get pods -o wide --all-namespaces
Однако обычным способом связи в кластере является использование ресурсов службы.
Служба также имеет IP-адрес и, кроме того, DNS-имя.Служба поддерживается набором пакетов.Сервис перенаправляет запросы к одному из модулей поддержки.
Полное DNS-имя Сервиса:
<service-name>.<service-namespace>.svc.cluster.local
. Это можно разрешить по IP-адресу Сервиса изв любом месте кластера (независимо от пространства имен).
Например, если у вас есть:
- Пространство имен
ns-a
: Служба svc-a
→ набор модулей A - Пространство имен
ns-b
: Служба svc-b
→ набор контейнеров B
Тогда пакет набора A может достичь пакета набора B, сделав запрос:
svc-b.ns-b.svc.cluster.local