在配置私有GKE集群时了解--master-ipv4-cidr

Chr*_*zel 4 google-kubernetes-engine gke-networking

我试图进一步了解在Google的Kubernetes Engine中配置私有集群时到底发生了什么。

Google在此处提供了一个示例,该示例提供了一个私有集群,其中控制平面服务(例如Kubernetes API)位于172.16.0.16/28子网中。

https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters

gcloud beta container clusters create pr-clust-1 \ --private-cluster \ --master-ipv4-cidr 172.16.0.16/28 \ --enable-ip-alias \ --create-subnetwork ""

当我运行此命令时,我看到:

  • 现在,我的VPC中有几个gke子网属于节点和服务的群集子网。它们在10.xxx/8范围内。
  • 我在172.16 / 16地址空间中没有任何子网。
  • 我确实有一些似乎相关的新配对规则和路线。例如,存在一个新路由“ peering-route-a08d11779e9a3276”,目标地址范围为“ 172.16.0.16/28”,下一跳为“ gke-62d565a060f347e0fba7-3094-3230-peer”。然后,该对等角色指向“ gke-62d565a060f347e0fba7-3094-bb01-net”

bash$ gcloud compute networks subnets list | grep us-west1 default us-west1 default 10.138.0.0/20 gke-insti3-subnet-62d565a0 us-west1 default 10.2.56.0/22

(venv) Christophers-MacBook-Pro:Stratus-Cloud christophermutzel$ gcloud compute networks peerings list NAME NETWORK PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE STATE_DETAILS gke-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服务器?

小智 7

GKE 的专用群集功能取决于VPC网络的“ 别名IP范围”功能,因此在创建专用群集时会发生多种情况:

  • --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拥有的项目中还会创建一个内部负载均衡器,这就是您的工作程序节点与之通信的对象。在区域群集的情况下,此ILB允许在多个VM之间实现流量负载平衡。您可以privateEndpoint在此输出的字段中找到此内部IP地址gcloud beta container clusters describe。要了解的重要一点是,由于两个网络之间的VPC对等关系,因此主VM和工作节点VM之间的所有通信都是通过内部IP地址进行的。

  • 您的私有集群具有一个外部IP地址,您可以endpoint在的输出中找到该字段gcloud beta container clusters describe。工作节点未使用此功能,但通常由客户使用,例如使用远程管理其集群kubectl

  • 您可以使用“ 主授权网络”功能来限制哪些IP范围(内部和外部)可以访问管理端点。强烈建议为私有群集使用此功能,并且在使用gcloudCLI 创建群集时,默认情况下启用此功能。

希望这可以帮助!