共享 vpc IP 耗尽的 GKE 自动驾驶仪

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

我在共享 VPC 中为 GKE Autopilot 设置了一个新子网,如下所示:

node ip: 10.11.1.0/24
first secondary ip: 10.11.2.0/24
second secondary ip: 10.11.3.0/24

我尝试通过运行具有 30 个副本的简单 nginx 映像来测试它。

根据我的理解:

I have 256 possible node IP
I have 256 possible pod IP
I have 256 possible service IP

部署后,不知何故,我的 k8s 只部署并运行了 2 个 pod。其余部分处于挂起状态,错误代码:

IP_SPACE_EXHAUSTED

我的问题是怎么来的?我还有足够的 IP 地址,这是新部署的 kubernetes 集群。

kubernetes google-cloud-platform google-kubernetes-engine autopilot
3个回答
1
投票

Autopilot 将“每个节点的最大 Pod”设置为 32。这会导致将 /26(64 个 IP 地址)从 Pod 辅助 IP 范围分配给每个 Autopilot 节点。由于您的 Pod 范围是 /24,这意味着您的 Autopilot 集群最多可以支持 4 个节点。

默认情况下,Autopilot 集群从 2 个节点开始(其中一个节点运行一些系统内容)。看来您的 Pod 不适合这两个节点,因此 Autopilot 根据需要配置了新节点。一般来说,Autopilot 会尝试找到最适合您的部署的节点大小,在这种情况下,您最终会发现每个节点都有一个 pod。

我建议您的 Pod 系列使用 /17 或 /16,以最大限度地增加节点数量。


1
投票

Autopilot 集群中的 Pod CIDR 范围

Autopilot 集群 CIDR 大小的默认设置如下:

  • 子网范围:/23
  • Pod 的辅助 IP 地址范围:/17
  • 服务的辅助 IP 地址范围:/22

Autopilot 每个节点的最大 Pod 数为 32,您可以查看此链接

Autopilot 集群最大节点数是预先配置且不可变的,您可以查看此链接


0
投票

我从事 GKE Autopilot 工作,想分享一些建议和最近的更新:

  • 假设我们正在讨论私有 IP (10.0.0.0/x) 稀缺的共享 VPC 类型环境,我们强烈建议尽可能使用非 RFC 1918 IP 范围。这篇博客文章概述了该策略以及 GKE Autopilot 的示例配置。必须考虑节点、服务和 Pod IP。特别建议使用E类(240.0.0.0/4),它提供250M IP。

  • 请注意,默认情况下 Autopilot 自动为服务提供 /20 非 RFC 范围,最多支持 4000 个节点。

  • 使用 IP Masquerading 从使用非 RFC IP 的 Pod 访问 VPC 服务。

  • 在 1.28+ 版本中,GKE Autopilot 已从静态 Pod/节点(以及 IP/节点)转变为动态模型,其中根据节点的大小,我们分配一定比例的 IP 地址。在小节点获得与大节点相同数量的 IP 的情况下,这可以减少浪费。

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