本页面介绍了如何在 Google Kubernetes Engine (GKE) 集群上启用自动 IP 地址管理(自动 IPAM)。启用自动 IPAM 后,GKE 会自动在集群中创建子网,并管理节点和 Pod 的 IP 地址。对于 Service,GKE 默认从 GKE 管理的范围分配 IP 地址。
本页面适用于预配和配置云资源、部署应用和服务以及管理云部署的网络运维人员、云架构师、开发者和网络工程师。如需详细了解我们在 Google Cloud内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务。
概览
过去,创建 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
命令以获取最新版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。
限制和局限
在 GKE 集群中使用自动 IPAM 时,请了解以下限制和局限性:
- 您的集群必须是 VPC 原生集群。 基于路由的集群不支持自动 IPAM。
- 您无法在具有共享 VPC 的集群中使用自动 IPAM。
- 当您创建具有多个网络接口的新节点池时,自动 IPAM 将无法正常运行。如需使用自动 IPAM,您必须在节点池中停用多网络功能。
- 如果您的集群具有 IPv4/IPv6 双栈网络,自动 IPAM 仅会分配和管理集群中的 IPv4 地址。
- 启用自动 IPAM 后,任何节点池(包括默认节点池)的默认节点大小上限为 252 个节点,CIDR 地址块为 /24。
- 默认情况下,在具有自动 IPAM 的集群中,GKE 允许每个节点最多有 48 个 Pod。
- 在采用自动 IPAM 的集群中,您不能超额预配 Pod CIDR 范围。
创建具有自动 IPAM 的集群
创建新集群并启用自动 IPAM 时,您可以让 GKE 创建新子网,也可以指定要使用的现有子网。
使用新子网启用自动 IPAM
如需创建具有自动 IPAM 的集群并让 GKE 创建新子网,请使用 Google Cloud 控制台或 gcloud CLI。 创建集群并启用自动 IPAM 时,您无需指定任何 IP 地址范围。
控制台
对于 Autopilot 集群,请使用 gcloud CLI。对于 Standard 集群,请完成以下步骤:
- 在 Google Cloud 控制台中,前往创建一个 Kubernetes 集群页面。
- 在导航窗格的集群下,点击网络。
- 在集群网络部分的 VPC 下,展开网络下拉列表,然后选择一个 VPC。
- 在 IP 管理部分的自动 IPAM 下,点击已启用。
- 根据需要配置其余设置。
- 点击创建。
gcloud
gcloud container clusters create CLUSTER_NAME \
--enable-auto-ipam \
将 CLUSTER_NAME
替换为您的集群名称。
GKE 会执行以下操作:
- 为集群创建新子网。
- 为集群设置初始 IP 地址分配,并自动为新节点池分配新的节点和 Pod IP 地址。
- 监控子网和次要 IP 地址范围的使用情况。
使用自有子网启用自动 IPAM
创建集群并指定现有子网时,请确保有足够的次要 IP 地址范围可供集群使用。
控制台
对于 Autopilot 集群,请使用 gcloud CLI。对于 Standard 集群,请完成以下步骤:
- 在 Google Cloud 控制台中,前往创建一个 Kubernetes 集群页面。
- 在导航窗格的集群下,点击网络。
- 在集群网络部分的 VPC 下,展开网络下拉列表,然后选择一个 VPC。
- 在 IP 管理部分的自动 IPAM 下,点击已启用。
- 在 VPC 部分中,展开节点子网下拉列表,然后选择要使用的子网。
- 根据需要配置其余设置,然后点击创建。
gcloud
如需创建具有自动 IPAM 的集群并指定您自己的子网,请按照在现有子网中创建集群部分中的说明操作,并在该命令中使用 --enable-auto-ipam
标志。例如:
gcloud container clusters create CLUSTER_NAME \
--enable-auto-ipam \
--subnetwork=SUBNET_NAME \
替换以下值:
CLUSTER_NAME
:您的集群的名称。SUBNET_NAME
:现有子网的名称。
子网的主要 IP 地址范围用于节点。子网必须位于集群所使用的区域中。
更新现有集群
您可以在现有集群上启用或停用自动 IPAM。
启用自动 IPAM
如需在现有集群上启用自动 IPAM,请使用Google Cloud 控制台或 gcloud CLI。
控制台
对于 Autopilot 集群,请使用 gcloud CLI。对于 Standard 集群,请完成以下步骤:
前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
在要修改的集群旁边,点击 more_vert 操作,然后点击 edit 修改。
在集群详情页面上,点击详情标签页。
在集群网络部分中,点击
修改自动 IPAM。在修改自动 IPAM 对话框中,选择已启用。
点击保存更改。
gcloud
运行以下命令:
gcloud container clusters update CLUSTER_NAME \
--enable-auto-ipam
更新集群后,如果您创建的新节点池没有足够的 IP 地址空间,GKE 会在集群中创建并管理新的 IP 地址范围。
停用自动 IPAM
如需在现有集群上停用自动 IPAM,请使用Google Cloud 控制台或 gcloud CLI。
控制台
对于 Autopilot 集群,请使用 gcloud CLI。对于 Standard 集群,请完成以下步骤:
前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
在要修改的集群旁边,点击 more_vert 操作,然后点击 edit 修改。
在集群详情页面上,点击详情标签页。
在集群网络部分中,点击
修改自动 IPAM。在修改自动 IPAM 对话框中,选择已停用。
点击保存更改。
gcloud
运行以下命令:
gcloud container clusters update CLUSTER_NAME \
--disable-auto-ipam
将 CLUSTER_NAME
替换为您的集群名称。
在集群中停用自动 IPAM 后:
- GKE 将保留使用自动 IPAM 创建的任何子网和次要 IP 地址范围的所有权。删除 GKE 集群时,系统会删除这些资源。
- 创建新节点池时,GKE 会自动分配默认子网和关联的次要 IP 地址范围。
后续步骤
- 了解 GKE 中的 IP 地址分配。
- 了解如何创建 VPC 原生集群。