Terraform 无法从OpenVPN客户端连接到专用的区域GKE终结点

Terraform 无法从OpenVPN客户端连接到专用的区域GKE终结点,terraform,google-kubernetes-engine,openvpn,private-subnet,terraform-provider-gcp,Terraform,Google Kubernetes Engine,Openvpn,Private Subnet,Terraform Provider Gcp,我通过Terraform(使用private=true和regionset)创建了GKE,并安装了stable/openvpnHelm图表。我的设置基本上与本文中描述的相同:并且我能够看到一个ClusterIP——本文中描述的仅公开的服务。但是,当我连接到VPN时,kubectl由于无法连接到主机而失败 我保留了默认设置(10.240.0.0),并将OVPN\u K8S\u POD\u网络和子网掩码设置更改为创建专用群集所在的专用子网时选择的辅助范围 我甚至尝试将10.240.0.0/16添加到

我通过Terraform(使用
private=true
region
set)创建了GKE,并安装了
stable/openvpn
Helm图表。我的设置基本上与本文中描述的相同:并且我能够看到一个
ClusterIP
——本文中描述的仅公开的服务。但是,当我连接到VPN时,
kubectl
由于无法连接到主机而失败

我保留了默认设置(
10.240.0.0
),并将
OVPN\u K8S\u POD\u网络
和子网掩码设置更改为创建专用群集所在的专用子网时选择的辅助范围

我甚至尝试将
10.240.0.0/16
添加到我的中,但我非常确定该设置仅适用于外部网络(添加完全不同的OVPN服务器的外部IP允许我在连接到它时运行
kubectl

知道我做错了什么吗

编辑:我刚刚记得我必须为设置一个值才能创建一个私有集群。因此,我将
10.0.0.0/28
添加到as
push“route 10.0.0.0 255.255.255.240”
中,但这没有帮助。此设置中的文档说明:

为主机的VPC指定专用RFC1918块。大师 范围不得与群集VPC中的任何子网重叠。这个 master和您的群集使用VPC对等。必须在CIDR中指定 符号和必须是/28子网


但是,对于集群外的子网上的OpenVPN客户端来说,这意味着什么呢?如何利用上述VPC对等?

找出了问题所在:
gcloud容器集群获取凭据
始终将主机的外部IP地址写入
~/.kube/config
。因此
kubectl
始终与该外部IP地址而不是内部IP地址通信


修复:我运行了
kubectl get endpoints
,记录了
10.0.0.x
IP,并用它替换了
~/.kube/config
中的外部IP。现在,
kubectl
在连接到Kube集群内的OVPN服务器时工作正常。

找出了问题所在:
gcloud容器集群获取凭据
始终将主机的外部IP地址写入
~/.Kube/config
。因此
kubectl
始终与该外部IP地址而不是内部IP地址通信

修复:我运行了
kubectl get endpoints
,记录了
10.0.0.x
IP,并用它替换了
~/.kube/config
中的外部IP。现在
kubectl
连接到Kube集群内的OVPN服务器时工作正常。

您可以将
--内部ip
添加到gcloud命令中,自动将内部ip地址放入
~/.Kube/config
文件

您可以将
--内部ip
添加到gcloud命令中,以自动放入内部ip
~/.kube/config
文件的ip地址