Terraform 无法从OpenVPN客户端连接到专用的区域GKE终结点
我通过Terraform(使用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添加到
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
添加到aspush“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地址