【发布时间】:2020-04-22 03:38:48
【问题描述】:
我使用以下命令创建了一个 GKE 集群:
gcloud beta container clusters create "cluster-asia-south1" \
--region "asia-south1" \
--project "project123" \
--cluster-version "1.14.8-gke.12" \
--machine-type "n1-standard-1" \
--image-type "COS" --disk-type "pd-standard" --disk-size "100" \
--scopes "https://www.googleapis.com/auth/cloud-platform" \
--num-nodes "1" \
--no-enable-basic-auth \
--metadata disable-legacy-endpoints=true \
--max-pods-per-node "110" --enable-stackdriver-kubernetes \
--enable-ip-alias \
--network "projects/project123/global/networks/default" \
--subnetwork "projects/project123/regions/asia-south1/subnetworks/default" \
--default-max-pods-per-node "110" \
--addons HorizontalPodAutoscaling,HttpLoadBalancing \
--no-enable-autoupgrade \
--no-enable-autorepair \
--node-locations asia-south1-a,asia-south1-b
我知道可以从asia-south1 区域内的虚拟机访问此集群(例如gcp-vm-asia-south1-a)。
因此,我在此 VM (gcp-vm-asia-south1-a) 中安装了 OpenVPN 服务器。现在,当我从本地系统连接到此 VM 时,我可以访问集群主端点,并且以下命令可以正常工作:
gcloud container clusters get-credentials "cluster-asia-south1" --region "asia-south1"
然后kuebctl get pods 工作正常,我也可以通过 Helm 进行连接。
假设我在同一个 VPC 但不同区域中还有两个集群(例如 cluster-us-central1 和 cluster-us-west1)。我如何使用同一个 OpenVPN 服务器来访问这些集群?
我了解,如果我为每个区域设置一个 OpenVPN 服务器,我将能够连接到相应的 VPN 服务器,并且该区域的 GKE 集群将可以毫无问题地访问。
但我不想在每个区域管理三台 OpenVPN 服务器。管理一个堡垒,几个iptables 或forwarding rules 或类似的东西应该没问题。
这个想法是为一个 VPC 保留一个 OpenVPN 服务器,无论有多少区域。这是否可行,有没有办法做到这一点?
我尝试在--master-authorized-networks 中添加虚拟机、子网和客户端的私有 IP 范围,但没有任何效果(我认为因为它们都来自不同的区域)。
【问题讨论】:
标签: google-cloud-platform google-kubernetes-engine kubernetes-helm kubectl kubernetes-ingress