Предположим, у меня есть кластер 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 перенаправляется на один из узлов моего кластера.