使用自动 IP 地址管理


本页面介绍了如何在 Google Kubernetes Engine (GKE) 集群上启用自动 IP 地址管理 (auto IPAM)。启用自动 IPAM 后,GKE 会自动在集群中创建子网,并管理节点和 Pod 的 IP 地址。对于服务,GKE 默认从 GKE 管理的范围分配 IP 地址。

本页面适用于预配和配置云资源、部署应用和服务以及管理云部署的网络运维人员、云架构师、开发者和网络工程师。如需详细了解我们在 Google Cloud内容中提及的常见角色和示例任务,请参阅常见的 GKE Enterprise 用户角色和任务

概览

按照传统方式,创建 GKE 集群时,您需要手动配置一个子网,其中包含一个用于节点 IP 地址的主要范围,以及两个用于 Pod 和 Service IP 地址的次要范围。手动配置 Pod IP 地址范围时,很难知道要设置的 IP 地址范围的确切大小。如果您分配的 IP 地址不足,可能会限制集群伸缩和新 Pod 的创建。反之,如果您过度分配 IP 地址,则可能会浪费其他资源可以使用的宝贵 IP 地址空间。

GKE 自动 IPAM 可解决此问题,并具有以下优势:

降低复杂性:自动 IPAM 通过自动创建子网并为该子网分配适当的 IP 地址范围,降低了 IP 地址分配的复杂性。

自动调整 IP 地址范围:启用自动 IPAM 后,GKE 会先为节点和 Pod 使用较小的 IP 地址范围。随着集群规模扩大或缩小,GKE 会使用在集群级层定义的多个不重叠的 IP 地址范围来动态添加或移除额外的 IP 地址范围。这种自动化方法可在整个 GKE 集群生命周期内优化 IP 地址的健康状况和效率。

简化 IP 地址管理:自动 IPAM 可减少您为 GKE 集群精心规划和管理 IP 地址分配的需求。

现有节点池纵向扩容或缩减时,自动 IPAM 不会添加或移除已分配给这些节点池的 IP 地址范围。当您创建节点池时,如果集群中的 IP 地址空间不足,自动 IPAM 会创建额外的子网和 IP 地址范围。

您可以在创建新集群时启用自动 IPAM。您还可以为现有集群启用或停用自动 IPAM。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

限制和局限

在 GKE 集群中使用自动 IPAM 时,请了解以下限制:

  • 您的集群必须是 VPC 原生集群。 基于路由的集群不支持自动 IPAM。
  • 您无法在具有共享 VPC 的集群中使用自动 IPAM。
  • 您可以在具有多网络功能的集群中启用自动 IPAM。 不过,当您创建具有多个网络接口的新节点池时,自动 IPAM 将无法正常运行。如需使用自动 IPAM,您必须在节点池中停用多网络功能。
  • 如果您的集群具有 IPv4/IPv6 双栈网络,自动 IPAM 将仅分配和管理集群中的 IPv4 地址。
  • 启用自动 IPAM 后,任何节点池(包括默认节点池)的默认最大节点大小为 252 个节点,CIDR 块为 /24。
  • 默认情况下,在具有自动 IPAM 的集群中,GKE 允许每个节点最多有 48 个 Pod。
  • 在采用自动 IPAM 的集群中,您无法超额预配 Pod CIDR 范围。

创建具有自动 IPAM 的集群

创建新集群并启用自动 IPAM 时,您可以让 GKE 创建新子网,也可以指定要使用的现有子网。如果您指定现有子网,请确保有足够的辅助 IP 地址范围可供集群使用。创建集群并启用自动 IPAM 时,您无需指定任何 IP 地址范围。

  1. 如需创建具有自动 IPAM 功能并让 GKE 创建新子网的集群,请运行以下命令:

    gcloud container clusters create CLUSTER_NAME \
        --enable-auto-ipam \
    

    CLUSTER_NAME 替换为您的集群名称。

    GKE 会执行以下操作:

    • 为集群创建新子网。
    • 为集群设置初始 IP 地址分配,并自动为新节点池分配新的节点和 Pod IP 地址。
    • 监控子网和次要 IP 地址范围的使用情况。
  2. 如需创建具有自动 IPAM 功能的集群并指定您自己的子网,请按照在现有子网中创建集群部分中的说明操作,并在命令中使用 --enable-auto-ipam 标志。例如:

    gcloud container clusters create CLUSTER_NAME \
       --enable-auto-ipam \
       --subnetwork=SUBNET_NAME \
    

    替换以下值:

    • CLUSTER_NAME:您的集群的名称。
    • SUBNET_NAME:现有子网的名称。子网的主要 IP 地址范围用于节点。子网必须位于集群所使用的区域中。

更新现有集群

您可以在现有集群上启用或停用自动 IPAM。

启用自动 IPAM

如需在现有集群上启用自动 IPAM,请运行以下命令:

gcloud container clusters update CLUSTER_NAME \
    --enable-auto-ipam

运行此命令后,当您创建 IP 地址空间不足的新节点池时,GKE 会在集群中创建并管理新的 IP 地址范围。

停用自动 IPAM

如需在现有集群上停用自动 IPAM,请运行以下命令:

gcloud container clusters update CLUSTER_NAME \
    --disable-auto-ipam

CLUSTER_NAME 替换为您的集群名称。

在集群中停用自动 IPAM 后:

  • GKE 将保留使用自动 IPAM 创建的任何子网和次要 IP 地址范围的所有权。删除 GKE 集群时,系统会删除这些资源。
  • 创建新的节点池时,GKE 会自动分配默认子网和关联的次要 IP 地址范围。

后续步骤