Все чаще к нам обращаются клиенты с просьбой обеспечить доступ в Kubernetes-кластер для возможности обращения к сервисам внутри кластера: чтобы можно было напрямую подключиться к какой-то базе данных или сервису, для связи локального приложения с приложениями внутри кластера…
Например, возникает потребность подключиться со своей локальной машины к сервису
K8s-кластеры мы настраиваем с помощью kubeadm, где по умолчанию сервисная подсеть —
Например, возникает потребность подключиться со своей локальной машины к сервису
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
. Обычно всё хорошо работает, но есть пара моментов: