Каковы максимальные лимиты на количество узлов, подов и контейнеров в одном Kubernetes-кластере?

«Каковы максимальные лимиты на количество узлов, подов и контейнеров в одном Kubernetes-кластере?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Официальные лимиты Kubernetes определены для обеспечения стабильности control plane. Ключевые ограничения:

  • Узлы (Nodes): до 5000 на кластер (рекомендовано не более 500 для оптимальной производительности).
  • Поды (Pods): до 150000 на кластер.
  • Поды на узел: до 110 (зависит от конфигурации kubelet).
  • Контейнеры на под: ограничено ресурсами узла, обычно несколько контейнеров на один под.

Почему существуют лимиты? Основное узкое место — производительность и масштабируемость etcd (хранилища состояния кластера) и компонентов control plane (kube-apiserver, kube-controller-manager).

Как проверить текущие масштабы?

# Количество узлов
kubectl get nodes --no-headers | wc -l

# Общее количество подов
kubectl get pods -A --no-headers | wc -l

Практические рекомендации: Для production-кластеров с высокими требованиями к доступности и производительности часто разбивают нагрузку на несколько кластеров (например, по регионам или окружениям), не приближаясь к верхним лимитам.