大型集群的注意事项

集群是一组由 节点(物理机或虚拟机)组成的集合,运行 Kubernetes 代理,并由 控制平面管理。Kubernetes v1.36 支持最多 5,000 个节点的集群。更具体地说,Kubernetes 的设计旨在适配满足以下所有标准的配置:

  • 每个节点最多 110 个 Pod
  • 最多 5,000 个节点
  • 总共最多 150,000 个 Pod
  • 总共最多 300,000 个容器

你可以通过添加或移除节点来扩展集群。具体操作方式取决于集群的部署方式。

云提供商资源配额

为了避免遇到云提供商的配额问题,在创建包含大量节点的集群时,请考虑:

  • 申请增加云资源的配额,例如:
    • 计算实例
    • CPU
    • 存储卷
    • 使用中的 IP 地址
    • 包过滤规则集
    • 负载均衡器数量
    • 网络子网
    • 日志流
  • 将集群扩展动作设置为分批启动新节点,并在批次之间暂停,因为一些云提供商会对创建新实例的速率进行限制。

控制平面组件

对于大型集群,你需要一个具备充足计算能力和其他资源的控制平面。

通常,你会在每个故障域运行一个或两个控制平面实例,先进行垂直扩展这些实例,在达到收益递减点后再进行水平扩展。

你应该在每个故障域至少运行一个实例以提供容错能力。Kubernetes 节点不会自动将流量导向同一故障域中的控制平面端点;然而,你的云提供商可能有自己的机制来执行此操作。

例如,使用托管负载均衡器时,你可以配置负载均衡器以发送源自故障域 A 中的 kubelet 和 Pod 的流量,并仅将其引导至同样位于域 A 中的控制平面主机。如果单个控制平面主机或故障域 A 的端点离线,这意味着节点在域 A 中的所有控制平面流量现在将在不同区域之间传输。在每个区域运行多个控制平面主机可降低这种情况发生的可能性。

etcd 存储

为了提高大型集群的性能,你可以将 Event(事件)对象存储在单独的专用 etcd 实例中。

创建集群时,你可以(使用自定义工具):

  • 启动并配置额外的 etcd 实例
  • 配置 API 服务器以使用它存储事件

有关为大型集群配置和管理 etcd 的详细信息,请参阅操作 Kubernetes 的 etcd 集群使用 kubeadm 设置高可用 etcd 集群

插件资源

Kubernetes 资源限制有助于最大限度地减少内存泄漏及 Pod 和容器可能影响其他组件的其他方式带来的影响。这些资源限制不仅适用于应用程序工作负载,同样也适用于 插件资源。

例如,你可以为日志组件设置 CPU 和内存限制。

  ...
  containers:
  - name: fluentd-cloud-logging
    image: fluent/fluentd-kubernetes-daemonset:v1
    resources:
      limits:
        cpu: 100m
        memory: 200Mi

插件的默认限制通常基于在小型或中型 Kubernetes 集群上运行每个插件的经验数据。在大型集群上运行时,插件通常会消耗比其默认限制更多的资源。如果在大规模集群部署中不调整这些值,插件可能会因为不断触及内存限制而被持续杀死。或者,插件可能虽然可以运行,但由于 CPU 时间片限制导致性能不佳。

为了避免遇到集群插件资源问题,在创建包含大量节点的集群时,请考虑以下建议:

  • 一些插件可以垂直扩展——集群中只有一个插件副本,或者为整个故障域提供服务。对于这些插件,随着集群的扩展,应增加其请求(requests)和限制(limits)。
  • 许多插件可以水平扩展——你可以通过运行更多 Pod 来增加容量——但在超大型集群中,你可能还需要稍微提高 CPU 或内存限制。垂直 Pod 自动缩放器 (Vertical Pod Autoscaler) 可以以建议 (recommender) 模式运行,为请求和限制提供建议数值。
  • 一些插件以每个节点一个副本的方式运行,受 DaemonSet 控制:例如,节点级日志聚合器。与水平扩展的插件情况类似,你可能也需要稍微提高它们的 CPU 或内存限制。

优先处理集群必需组件

为确保集群必需组件(如 CoreDNS、metrics-server 和其他关键插件)在其他工作负载之前调度,且不会被优先级较低的 Pod 抢占,请使用系统 PriorityClass(例如 system-cluster-criticalsystem-node-critical)来运行它们。

接下来


最后修改于 2026 年 2 月 8 日下午 5:45 (PST):添加关于集群必需组件的系统 PriorityClasses 的指南 (dc6687c086)