Ответ
Команда kubectl apply применяет конфигурацию из файла или stdin к кластеру Kubernetes. Она сравнивает текущее состояние ресурсов с желаемым состоянием из манифеста и вносит необходимые изменения.
Ключевые моменты:
- Если ресурс не существует - создается
- Если ресурс уже существует - обновляется (с учетом стратегии обновления)
- Сохраняет аннотацию
kubectl.kubernetes.io/last-applied-configurationдля последующих сравнений
Пример:
kubectl apply -f deployment.yaml
Нюансы:
- Для обновления используется стратегия three-way merge (старое состояние, текущее состояние, новое состояние)
- Не все поля можно обновлять (например, некоторые спецификации Pod'ов immutable после создания)