TGViewer
DevOps DevOps @i_devops · 8.82K subscribers
Post #3588 1.6K
Kubernetes: секреты быстрого rollback без боли и даунтайма

🔄 Rollback — неотъемлемая часть стабильного продакшена. Но сколько раз он превращался в хаос? Рассмотрим, как грамотно настроить откат в Kubernetes, чтобы не терять трафик, не ловить панику и не тратить часы на ручное восстановление.


🔹 1. Стратегия деплоя имеет значение

По умолчанию Deployment использует стратегию RollingUpdate. Это безопасно, но не всегда быстро. Убедись, что параметры maxUnavailable и maxSurge оптимальны:


strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0


➡️ Это даст zero downtime, но при большом количестве реплик откат будет медленным. Подстрой под нагрузку.


🔹 2. Используй kubectl rollout undo

Kubernetes хранит предыдущие ReplicaSets, так что простой rollback — дело одной команды:


kubectl rollout undo deployment my-app


Проверь текущую ревизию:


kubectl rollout history deployment my-app


📝 Храни истории изменений в git — манифесты должны быть version-controlled.


🔹 3. Хелм под капотом? Настрой helm rollback

Если ты используешь Helm, rollback проще:


helm rollback my-release 1


❗️Важно: иногда rollback не возвращает ConfigMap или Secret, если они были изменены. Используй флаг --recreate-pods или закладывай изменения в values.yaml через hash-аннотации.


🔹 4. Прогревай rollback заранее

На preprod окружении сделай dry-run откатов. Проверь:

- есть ли живая предыдущая ревизия
- не изменились ли зависимости (например, база данных)
- как себя ведёт app после downgrade


🔹 5. Автоматизируй возврат

Сценарий: новая версия падает по хелсчекам. Вместо ручного вмешательства — automation:

- Настрой alertmanager на провал readiness/liveness
- Свяжи с Argo Rollouts или Spinnaker, чтобы триггерить rollback автоматически


✅ Вывод: грамотный rollback — это не кнопка “назад”, а часть CI/CD культуры.

Обеспечь:

- контроль версий манифестов
- мониторинг после деплоя
- rollback как часть стратегии, а не костыль


#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
  • 👍 4
More from @i_devops
  1. Oct 1, 2026🌟 GitHub Actions для Terraform 🌟 Если вы используете Terraform и хотите интегрировать ег…
  2. Sep 30, 2026GitOps-практики: развёртываем сервис через ArgoCD Классический CI/CD запускает деплой. Но…
  3. Sep 30, 2026Kubefirst Платформа с открытым исходным кодом Kubefirst Это полностью автоматизированная и…
  4. Sep 30, 202622 октября Kubernetes-сообщество встречается офлайн в Москве! Кому будет интересна конфере…
  5. Sep 30, 2026🔥 Elasticsearch или PostgreSQL: зачем платить за сложность? В DevOps-сообществе тренд «пр…
  6. Sep 28, 2026Проектирование CI CD. DevOps умеешь? Не каждый DevOps инженер умеет проектировать ci cd ко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →