Что будет происходить при kubectl apply

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

Ответ

Команда kubectl apply применяет конфигурацию из файла или stdin к кластеру Kubernetes. Она сравнивает текущее состояние ресурсов с желаемым состоянием из манифеста и вносит необходимые изменения.

Ключевые моменты:

  1. Если ресурс не существует - создается
  2. Если ресурс уже существует - обновляется (с учетом стратегии обновления)
  3. Сохраняет аннотацию kubectl.kubernetes.io/last-applied-configuration для последующих сравнений

Пример:

kubectl apply -f deployment.yaml

Нюансы:

  • Для обновления используется стратегия three-way merge (старое состояние, текущее состояние, новое состояние)
  • Не все поля можно обновлять (например, некоторые спецификации Pod'ов immutable после создания)