Можно ли откатить Deployment в Kubernetes?

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

Ответ

Да, откат Deployment — стандартная операция в Kubernetes. Для этого используется команда kubectl rollout undo.

Основная команда для отката к предыдущей ревизии:

kubectl rollout undo deployment/<deployment-name>

Для отката к конкретной ревизии из истории:

kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number>

Перед откатом полезно просмотреть историю изменений:

kubectl rollout history deployment/<deployment-name>

Важные детали:

  • Откат возможен, только если для Deployment включена история ревизий (по умолчанию сохраняется 10 последних конфигураций).
  • При откате Kubernetes создаёт новую ревизию, поэтому история продолжает накапливаться.
  • Это безопасная операция: она запускает стратегию обновления (например, RollingUpdate), минимизируя простой приложения.