实现平面 IPv4 模式网络模型

概览

平面模式网络模型分为两种类型:静态模式网络和动态模式网络(使用边界网关协议)。当节点跨越单个第 2 层网域时,可以使用静态平面模式。对于跨多个第 2 层网域的节点,请将平面 IP 地址模式与 BGP 搭配使用。

在平面模式网络模型中,pod 具有跨集群的唯一 IP 地址。确保分配的 pod CIDR 唯一,并且不与任何其他子网重叠。例如,IP 地址不能与用于其他集群中的节点或其他 pod CIDR 的 IP 地址重叠。这些 IP 地址可以从外部访问,因此任何节点上的 pod 都可以与所有其他节点上的所有 pod 通信。从 pod 到任何外部 IP 地址的通信不需要进行网络地址转换 (NAT)。如需详细了解平面模式网络模型及其与默认孤岛网络模型的对比情况,请参阅平面模式与孤岛模式网络模型

如果您有大型 IP 地址空间,并且可以为集群分配唯一的 pod CIDR,请使用平面模式网络模型。您可以使用 ClusterCIDRConfig 动态配置 pod CIDR。您可以在创建集群后添加或删除 ClusterCIDRConfig。 如需详细了解 ClusterCIDRConfig 及其使用示例,请参阅了解 ClusterCIDRConfig 自定义资源

如需详细了解使用 BGP 的平面模式,请参阅实现支持 BGP 的平面模式网络模型

了解 Pod IP 地址可达性

在 IPv4 的静态平面网络模式下,Pod IP 地址可达性基于地址解析协议 (ARP) 数据包。因此,仅当 Pod 位于同一第 2 层网域中时,才能访问 Pod IP 地址。这些节点必须属于同一第 2 层网域。您为 Pod 指定的 IP 地址(使用 ClusterCIDRConfig)必须与集群节点位于同一子网中。 配置的 Pod CIDR 必须来自节点的子网。 例如,集群中的节点使用 222.1.0.0/16 子网,然后为 Pod 选择该子网中一个更小的子网 222.1.2.0/24。确保集群中的其他资源没有使用为您的 pod 分配的范围内的 IP 地址。

以下部分介绍 IPv4 的平面模式网络的配置。

如何实现静态平面模式网络

默认情况下,Google Distributed Cloud 集群是在孤岛模式下创建的。本部分介绍如何为集群设置平面模式网络。

如需部署使用平面模式网络模型的集群,请对集群配置文件进行以下更改:

只能在创建集群期间为集群启用平面模式网络。如需创建使用平面模式网络的新集群,请按以下步骤操作:

  1. 修改集群配置文件以添加 clusterNetwork.flatIPv4 并将其设置为 true

    启用平面模式网络时,系统会忽略集群配置文件 (clusterNetwork.pods.cidrBlocks) 中指定的 pod CIDR。

  2. 将 ClusterCIDRConfig 清单附加到集群配置文件。

    在 ClusterCIDRConfig 清单中,请提供以下信息:

    • metadata.namespace:集群的命名空间。

    • spec.ipv4.cidr:用于集群中的 Pod 的 IP 地址范围(采用 CIDR 地址块格式)。此范围必须来自集群节点所在的子网。

    • perNodeMaskSize:集群创建预检检查会验证 perNodeMaskSize 值是否足以预配 maxPodsPerNode 中指定的 pod 数量。

    • nodeSelector:如果没有节点标签与 nodeSelector 值匹配,则节点协调操作将保持待处理状态,并且集群创建操作不会完成。

以下集群配置文件摘录展示了如何在不支持 BGP 的情况下实现平面模式网络。此摘录中显示的 CIDR 只是示例,您需要将其替换为自己的 CIDR。将 CIDR 替换为您自己的 CIDR 时,请确保它们满足了解 pod IP 地址可达性中指定的 pod 可达性标准。

---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: flat-mode
  namespace: cluster-flat-mode
spec:
... (other cluster config omitted)

...
  # Cluster networking configuration
  clusterNetwork:
    flatIPv4: true
    services:
      cidrBlocks:
      - 10.96.0.0/12
... (other cluster config omitted)

...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
  name: cluster-wide-1
  namespace: cluster-flat-mode
spec:
  ipv4:
    cidr: "222.1.0.0/16"
    perNodeMaskSize: 24

限制

Google Distributed Cloud 的静态平面模式网络具有以下限制:

  • 可以在单个第 2 层网域中访问使用平面模式网络的 Pod。不在集群中但位于同一第 2 层网域的任何其他机器也可以访问 Pod。当创建双栈集群以及 IPv6 处于没有 BGP 的平面模式时,IPv6 也存在此限制。如需了解详情,请参阅了解 pod IP 地址可达性

  • Google Distributed Cloud IPAM 控制器会跟踪已配置的 Pod CIDR 中的 IP 地址可用性。它不会跟踪其他设备已在使用的 IP 地址。因此,第 2 层网域中的任何其他 IP 地址不得干扰 POD CIDR。如需了解详情,请参阅了解 pod IP 地址可达性