我目前在访问 Google Cloud Platform 上的私有 GKE 集群的主节点时遇到问题。这是我的配置:
resource "google_container_cluster" "private_cluster" {
name = "name"
location = var.zone
network = gke_vpc_self_link
subnetwork = gke_subnet_self_link
enable_shielded_nodes = true
remove_default_node_pool = true
initial_node_count = 1
private_cluster_config {
enable_private_endpoint = true
enable_private_nodes = true
master_ipv4_cidr_block = "172.16.0.0/28"
}
我有一个在 VPC Hub 中运行的 Pritunl VPN 服务器。问题是,使用VPC Hub中的VPN获取的私有IP无法访问VPC Spoke中GKE集群的Master。这是因为 Google Cloud 中的 VPC 对等互连不支持传输路由,这意味着来自 VPN 的 IP 无法直接访问 GKE 主节点,除非它们属于同一 VPC。
寻找一种方法,允许从我的本地计算机(通过 VPC Hub 中的 VPN)访问 VPC Spoke 中的 GKE 主节点,而无需在 VPC Spoke 中设置另一个 VPN。
实现此设置的推荐做法或配置是什么?任何有关使用中转网关、路线或其他方法来解决此问题的建议将不胜感激。
#环境详情
GKE 控制平面部署在 Google 管理的 VPC 中,而不是部署在您的分支 VPC 中。
要访问控制平面,您需要在中心 VPC 和分支 VPC 之间建立 VPN 连接,如评论中所述。
另一个解决方案是使用部署在分支 VPC 中的堡垒虚拟机,并从中心 VPC 通过 SSH 连接到该虚拟机。然后从堡垒主机连接到控制平面。更多 - https://cloud.google.com/kubernetes-engine/docs/tutorials/private-cluster-bastion
第三种解决方案是在启用授权网络的情况下使用外部端点访问。 https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept#overview
有一些选项可以使用 PSC 连接到 GKE 控制平面,但目前此 PSC 端点只能部署在部署节点池的同一 VPC 中,因此对于您的情况来说不是很有用。请记住,这是某些较新版本的集群的默认设置:
满足以下任意条件的私有或公有集群,可以使用Private Service Connect私连接节点和控制平面:
2022 年 3 月 15 日或之后版本 1.23 中的新公共集群。 新 2024 年 1 月 28 日之后版本 1.29 中的私有集群。
https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview#public-cluster-psc