Что такое Replica count в Kubernetes?

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

Ответ

Replica count (количество реплик) — это параметр, определяющий, сколько идентичных копий (подов) приложения должно постоянно работать в кластере Kubernetes. Он задаётся в ресурсах типа Deployment, StatefulSet или ReplicaSet.

Основные цели:

  • Отказоустойчивость: Если один под падает, Kubernetes автоматически создаёт новый, чтобы поддерживать заданное количество реплик.
  • Горизонтальное масштабирование: Увеличение числа реплик позволяет обрабатывать больше трафика.

Пример в манифесте Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-web-app
spec:
  replicas: 3  # Ключевой параметр: запустить и поддерживать 3 идентичных пода
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: nginx
        image: nginx:latest

Важные нюансы:

  • Отличие от HPA: replicas задаёт статическое количество. Для автоматического масштабирования в зависимости от нагрузки используется Horizontal Pod Autoscaler (HPA).
  • Планирование: Kubernetes планировщик (scheduler) распределяет реплики по нодам с учётом доступных ресурсов (CPU, memory) и anti-affinity правил.
  • Обновления: Стратегии обновления (например, RollingUpdate) оперируют количеством реплик, контролируя, сколько из них может быть недоступно (maxUnavailable) или создано сверх нормы (maxSurge) во время деплоя.