Например, возникает потребность подключиться со своей локальной машины к сервису
memcached.staging.svc.cluster.local
. Мы предоставляем такую возможность с помощью VPN внутри кластера, к которому подключается клиент. Для этого анонсируем подсети pod'ов, сервисов и push'им кластерные DNS клиенту. Таким образом, когда клиент пытается подключиться к сервису memcached.staging.svc.cluster.local
, запрос уходит в DNS кластера и в ответ получает адрес данного сервиса из сервисной сети кластера или адрес pod'а. K8s-кластеры мы настраиваем с помощью kubeadm, где по умолчанию сервисная подсеть —
192.168.0.0/16
, а сеть pod'ов — 10.244.0.0/16
. Обычно всё хорошо работает, но есть пара моментов: