Назад | Перейти на главную страницу

Запуск OpenVPN в контейнере k8s

Предположим, у меня есть кластер k8s с диапазоном IP-адресов служб 10.198.240.0/20.

Теперь я хочу, чтобы этот диапазон IP-адресов был доступен из другого кластера или центра обработки данных.

Возможно ли запустить OpenVPN в kubernetes POD, чтобы этот диапазон IP-адресов был доступен через VPN?

Была такая же проблема и сделала это решение:

Попробуйте и дайте мне знать, работает ли он для вас.

Инструкции:

docker run --user=$(id -u) -e OVPN_SERVER_URL=tcp://vpn.my.fqdn:1194 \
-v $PWD:/etc/openvpn:z -ti ptlange/openvpn ovpn_initpki
docker run --user=$(id -u) -e EASYRSA_CRL_DAYS=180 \
-v $PWD:/etc/openvpn:z -ti ptlange/openvpn easyrsa gen-crl

получить идентификатор службы

$ ./kube/deploy.sh
Usage: ./kube/deploy.sh <namespace> <OpenVPN URL> <service cidr> <pod cidr>

$ ./kube/deploy.sh default tcp://vpn.my.fqdn:1194 10.3.0.0/24 10.2.0.0/16
secret "openvpn-pki" created
configmap "openvpn-settings" created
configmap "openvpn-ccd" created
deployment "openvpn" created
You have exposed your service on an external port on all nodes in your
cluster.  If you want to expose this service to the external internet, you may
need to set up firewall rules for the service port(s) (tcp:30xxx) to serve traffic.

See http://releases.k8s.io/release-1.3/docs/user-guide/services-firewalls.md for
more details. service "openvpn-ingress" created

То, чего вы пытаетесь достичь, описано в этих обсуждениях. [1][2]. В основном после того, как у вас есть выставлен Чтобы сервисы Kubernetes были доступны через частный IP-адрес, вам также необходимо добавить хотя бы один маршрут в вашей сети Google.

Например, мои службы всегда развертываются с использованием этого диапазона 10.167.240.0/20. Я получил диапазон адресов, посмотрев на вывод «кластеры контейнеров gcloud описывают CLUSTER_NAME --zone ZONE» (servicesIpv4Cidr: 10.167.240.0/20.)

я добавил маршрут в моей сети Google, так что диапазон 10.167.240.0/20 перенаправляется на один из узлов моего кластера.