我试图进一步了解我在Google的Kubernetes Engine中配置私有(private)集群时到底发生了什么。
Google在此处提供了一个示例,该示例提供了一个私有(private)集群,其中控制平面服务(例如Kubernetes API)位于172.16.0.16/28子网中。
https://cloud.google.com/kubernetes-engine/docs/how-to/private-clustersgcloud beta container clusters create pr-clust-1 \ --private-cluster \ --master-ipv4-cidr 172.16.0.16/28 \ --enable-ip-alias \ --create-subnetwork ""
当我运行此命令时,我看到:
bash$ gcloud compute networks subnets list | grep us-west1default us-west1 default 10.138.0.0/20gke-insti3-subnet-62d565a0 us-west1 default 10.2.56.0/22
(venv) Christophers-MacBook-Pro:Stratus-Cloud christophermutzel$ gcloud compute networks peerings listNAME NETWORK PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE STATE_DETAILSgke-62d565a060f347e0fba7-3094-3230-peer default gke-prod-us-west1-a-4180 gke-62d565a060f347e0fba7-3094-bb01-net True ACTIVE [2018-08-23T16:42:31.351-07:00]: Connected.
gke-62d565a060f347e0fba7-3094-bb01-net是否是Google正在为GKE服务管理的Kubernetes管理端点所在的对等VPC(控制平面中的值在172.16/16范围内)?
此外-我的请求如何发送到Kubernetes API服务器?
最佳答案
GKE的Private Cluster功能取决于VPC网络的Alias IP Ranges功能,因此在创建私有(private)群集时会发生多种情况:
--enable-ip-alias
标志告诉GKE使用具有两个辅助IP范围的子网:一个用于Pod,一个用于服务。这使VPC网络可以了解群集中的所有IP地址并适本地路由流量。 --create-subnetwork
标志告诉GKE创建一个新的子网(在您的情况下为gke-insti3-subnet-62d565a0)并自动选择其主要范围和辅助范围。请注意,您可以改为使用--cluster-ipv4-cidr
和--services-ipv4-cidr
自己选择辅助范围。或者,您甚至可以自己创建子网,并告诉GKE将其与标志--subnetwork
,--cluster-secondary-range-name
和--services-secondary-range-name
一起使用。 --private-cluster
标志告诉GKE在Google拥有的项目中创建一个新的VPC网络(在您的情况下为gke-62d565a060f347e0fba7-3094-bb01-net),然后使用VPC Network Peering将其连接到您的VPC网络。 Kubernetes管理端点位于您使用--master-ipv4-cidr
指定的范围内(在您的情况下为172.16.0.16/28)。 Google拥有的项目中还会创建一个Internal Load Balancer,这就是您的工作程序节点与之通信的对象。在Regional Cluster的情况下,此ILB允许在多个VM之间实现流量负载平衡。您可以在privateEndpoint
的输出中找到此内部IP地址作为gcloud beta container clusters describe
字段。要了解的重要一点是,由于两个网络之间的VPC对等连接,因此主VM和工作节点VM之间的所有通信都是通过内部IP地址进行的。 endpoint
的输出中将其作为gcloud beta container clusters describe
字段找到。工作节点未使用此属性,但通常由客户使用,例如使用kubectl
远程管理其集群。 gcloud
CLI创建集群时默认启用该功能。 希望这可以帮助!
关于google-kubernetes-engine - 在配置私有(private)GKE集群时了解--master-ipv4-cidr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51995973/