了解 GKE IP 分配

问题描述 投票:0回答:1

我试图理解 GKE 中的不同 IP 范围,即主要 IP 范围(子网)、创建子网时的次要 IP 范围。然后是创建集群时的服务和 Pod 范围。

这个例子创建私有集群

my-subnet-0: 10.0.0.0/22
Pod secondary range: 10.52.0.0/14
VM address: 10.128.0.3

我不明白为什么 Pod IP 完全在子网之外,为什么 VM 地址看起来是随机的。

在典型的物理网络中,我希望使用子网掩码,以便路由器知道将流量路由到哪个网络。所以在这种情况下,我希望 Pod 和 VM 地址都在

10.0.0.0
-
10.0.4.255
之内。我也希望 Pod IP 以类似的方式位于节点/VM IP 内。

有人可以解释为什么不是这样吗?

kubernetes google-cloud-platform google-kubernetes-engine subnet cidr
1个回答
0
投票

我建议仔细阅读文档。 doc 说 VM 是 GKE 集群之外的 VM,并展示了如何将其自动化以连接到集群的控制平面。它不像 GKE 集群的虚拟机在子网外获得随机 IP,只是位于另一个子网中的虚拟机试图连接到集群:

例如,假设您在 my-subnet-0 的主要范围内创建了一个 VM。然后在该 VM 上,您可以将 kubectl 配置为使用控制平面的内部 IP 地址。

如果要从 my-subnet-0 外部访问控制平面,则必须授权至少一个地址范围才能访问私有端点。

假设您有一个虚拟机位于默认网络中,与您的集群位于同一区域,但不在 my-subnet-0 中。

例如:

  • 我的子网-0:
    10.0.0.0/22
  • Pod 二级射程:
    10.52.0.0/14
  • 虚拟机地址:
    10.128.0.3

您可以使用以下命令授权VM访问控制平面:

gcloud container clusters update private-cluster-0 \
   --enable-master-authorized-networks \
   --master-authorized-networks 10.128.0.3/32

关于次要范围,您可以查看文档但本质上:

使用 IP 别名,您可以配置多个内部 IP 地址,代表虚拟机中托管的容器或应用程序,而无需定义单独的网络接口。您可以从子网的主要或次要范围分配 VM 别名 IP 范围。

这是真的;最后,Pod 的网络和服务的网络位于集群的 VM 内,并进一步简化了路由流量。

© www.soinside.com 2019 - 2024. All rights reserved.