Лучший способ добавить статические маршруты к каждому модулю в кластере Kubernetes?

Лучший способ добавить статические маршруты к каждому модулю в кластере Kubernetes?

У меня есть 3 узла, на которых запущено несколько OpenVPN pods, каждый модуль имеет VPN-сеть 100.70.0.0/16, и клиенты, которые подключаются к этим модулям, получают IP-адреса в этом диапазоне, например, предположим, что клиент 100.70.162.91подключился к одному из модулей.

Теперь я хочу добавить больше модулей, запускающих различные сервисы в этом кластере, и каждый модуль должен иметь возможность общаться с каждым VPN-клиентом. Один из больших шагов, который я бы сделал до сих пор, используя AWS ECS, — это добавление маршрута, например, ip route add 100.70.192.91/32 via <OpenVPN-pod-IPv4>/32в таблицу маршрутизации подсети VPC кластера, как только клиент подключается с помощью API AWS, этот метод, похоже, также работает с использованием docker-composeи Kubernetesдо тех пор, пока все модули находятся в одной сети.

Однако теперь, когда я пытаюсь перейти с ECS на Kubernetes, я не могу найти способа добавить статические маршруты для всей сети кластера в Kubernetes.

Как лучше всего реализовать это в Kubernetes?

решение1

Если вы используете vanilla k8s вместо ECS, у вас есть возможность добавить такие маршруты на рабочих узлах. Таким образом, трафик pod в сети, отличные от k8s (сеть VPN-клиентов отличается от сети pod k8s), будет выходить через таблицу маршрутизации рабочих узлов. Вам нужно добавить статический маршрут в сеть VPN-клиентов на рабочих узлах. Назначение маршрута вы устанавливаете vpn-pod IP. Он доступен с любого рабочего узла k8s.

Связанный контент