配额和限制

本页面介绍 Anthos clusters on Bare Metal 1.7 的 Google Cloud 项目、集群和节点的配额和限制。

限制

请注意集群的以下限制和建议。

每个集群的 Pod 数上限

我们建议您将每个集群的 pod 数量限制为 15000 个以内。例如,如果您的集群有 200 个节点,则应将每个节点的 pod 数限制为 75 个以内。同样,如果您希望每个节点运行 110 个 pod,则应将集群中的节点数限制为 136 个以内。下表提供了建议和不建议的配置示例。

每个节点的 Pod 数。 每个集群的节点数 每个集群的 Pod 数 结果
110 200 22000 Pod 过多,不建议
110 136 14960 在限制范围内
100 150 15000 在限制范围内
75 200 15000 在限制范围内

以下各部分中每个集群的 pod 数上限建议优先于每个节点的 pod 数和每个集群的节点数建议。

每个集群的节点数上限

我们测试 Anthos clusters on Bare Metal,以运行具有多达 500 个节点的工作负载。不过,为了确保最佳的性能和可靠性,我们建议您在生产中运行工作负载时每个集群不超过 200 个节点。

集群类型 节点数下限 建议的节点数上限 绝对节点数上限
用户、独立或混合 1 200 500

对于单节点集群,您必须移除 node-role.kubernetes.io/master:NoSchedule 污点才能在节点上运行工作负载。如需了解详情,请参阅 Kubernetes 污点和容忍

每个节点的 Pod 数上限

Anthos clusters on Bare Metal 支持在集群配置文件nodeConfig.PodDensity.MaxPodsPerNode 设置中配置每个节点的 Pod 数上限。下表显示了 MaxPodsPerNode 支持的最小值和最大值,其中包括运行插件服务的 pod:

集群类型 允许的最小值 建议的最大值 允许的最大值
所有 HA 集群和非 HA 用户集群 32 110 250
所有其他非 HA 集群 64 110 250

端点数量上限

在 RHEL 和 CentOS 中,存在 10 万个端点的集群级层限制。此数字是一个 Kubernetes Service 引用的所有 pod 的总和。如果两个服务引用同一组 pod,则此情况计为两组单独的端点。RHEL 和 CentOS 中的底层 nftable 实现导致了此限制;这不是 Anthos clusters on Bare Metal 的固有限制。

应对措施

对于 RHEL 和 CentOS,没有缓解措施。对于 Ubuntu 和 Debian 系统,我们建议在大规模集群上从默认 iptables 切换为旧版 iptables

Dataplane V2 eBPF 限制

BPF lbmap 中 Dataplane V2 的最大条目数为 65536。 以下方面的增加可能会导致条目总数增加:

  • 服务数
  • 每项服务的端口数
  • 每项服务的后端数

我们建议您监控集群使用的实际条目数,以确保不超出限制。使用以下命令获取当前条目:

kubectl get po -n kube-system -l k8s-app=cilium | cut -d " " -f1 | grep anetd | head -n1 | \
    xargs -I % kubectl -n kube-system exec % -- cilium bpf lb list | wc -l

我们还建议您使用自己的监控流水线从 anetd DaemonSet 中收集指标。监控以下条件以确定条目数何时导致问题:

cilium_bpf_map_ops_total{map_name="lb4_services_v2",operation="update",outcome="fail" } > 0
cilium_bpf_map_ops_total{map_name="lb4_backends_v2",operation="update",outcome="fail" } > 0

LoadBalancer 和 NodePort Services 端口限制

LoadBalancer 和 NodePort Service 的端口限制为 2768。默认端口范围为 30000-32767。如果超出限制,则您无法创建新的 LoadBalancer 或 NodePort Service,也无法为现有服务添加新的节点端口。

使用以下命令检查当前分配的端口数:

kubectl get svc -A | grep : | tr -s ' ' | cut -d ' '  -f6 | tr ',' '\n' | wc -l

捆绑式负载均衡器节点连接限制

用于捆绑式负载均衡 (MetalLB) 的每个节点允许的连接数为 28000。这些连接的默认临时端口范围为 32768-60999。如果超出连接限制,则对 LoadBalancer Service 的请求可能会失败。

如果您需要公开能够处理大量连接(例如针对 Ingress)的负载均衡器服务,我们建议您考虑替代负载均衡方法,以避开 MetalLB 的限制问题。

集群配额

默认情况下,您最多可以注册 15 个集群。如需在 GKE Hub 中注册更多集群,您可以在 Google Cloud 控制台中提交增加配额申请:

转到“配额”

找不到您要查询的内容?点击发送反馈,告诉我们缺少哪些内容。