0

我通过 Terraform ( google_container_cluster with and set)创建了 GKE私有集群并安装了Helm Chart。我的设置与本文中描述的基本相同:https ://itnext.io/use-helm-to-deploy-openvpn-in-kubernetes-to-access-pods-and-services-217dec344f13我能够请参阅文章中描述的 -only 公开服务。但是,当我连接到 VPN 时,由于无法连接到主服务器而失败。private = trueregionstable/openvpnClusterIPkubectl

我将OVPN_NETWORK设置保留为默认值 ( 10.240.0.0),并将OVPN_K8S_POD_NETWORK子网掩码设置更改为我在创建私有集群所在的私有子网时选择的次要范围。

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

有什么想法我在这里做错了吗?

编辑:我只记得我必须设置一个值master_ipv4_cidr_block才能创建私有集群。所以我添加10.0.0.0/28ovpn.conf 文件中,push "route 10.0.0.0 255.255.255.240"但这并没有帮助。有关此设置的文档指出:

为 master 的 VPC 指定私有 RFC1918 块。主范围不得与集群 VPC 中的任何子网重叠。主服务器和您的集群使用 VPC 对等互连。必须以 CIDR 表示法指定,并且必须是 /28 子网。

但是对于集群外部子网上的 OpenVPN 客户端有什么意义呢?如何利用上述 VPC 对等互连?

4

2 回答 2

2

找出问题所在:gcloud container clusters get-credentials总是将主设备的外部 IP 地址写入~/.kube/config. 所以kubectl总是与那个外部 IP 地址而不是内部 IP 对话。

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

于 2018-08-15T17:37:27.633 回答
0

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

于 2019-04-09T13:24:56.953 回答