на связи · DevOps-инженер
Держу прод в рабочем состоянии — и поднимаю его, когда он падает.
DevOps-инженер: Kubernetes, облака и своё железо. Сейчас отвечаю за прод финтех-группы и учу будущих DevOps-инженеров в ProstoDevops.
$ whoamiГалуст Аракелян — DevOps-инженер$ kubectl get engineer galust -o wideNAME EXPERIENCE CLUSTERS INCIDENTS STUDENTS STATUS galust ~7y 8 ~50 ~100 Running$ cat focus.txtаварийное восстановление · kubernetes · vault · terraform · gitlab ci$
- ~7лет в Linux-инфраструктуре и DevOps
- 8Kubernetes-кластеров вёл руками
- ~50инцидентов разобрал по фактам
- ~100учеников веду как ментор
журнал инцидентов
реальные случаи · симптом → причина → решение- SEV-1INC-01● решено
Облачный провайдер потерял две из трёх зон
- симптом
- Прод лежит, у оставшихся нод нет интернета, хранилище провайдера только на чтение.
- причина
- Региональная авария у провайдера; NAT-шлюз остался в мёртвой зоне.
- решение
- Запустил Velero вне кластера и снял 10 466 объектов, сохранил 123 образа и данные Vault, Redis, RabbitMQ, Redpanda, затем восстановил всё на новом Kubernetes в офисе.
- итог
- Состояние прода поднято на Talos за один день.
- SEV-2INC-02● решено
Redis Sentinel упал по OOM при обновлении образа
- симптом
- Прод-нода Redis ушла в OOM сразу после выкатки.
- причина
- Дрейф чарта: новый чарт применил лимит по умолчанию 192 MiB, а живым подам нужно было 4 GiB.
- решение
- Откатил, перенёс реальные лимиты в Git, вычистил зависшее состояние Helm и Terraform.
- итог
- 3/3 ноды в строю, кворум Sentinel 3.
- SEV-3INC-03● решено
Terraform plan падает с 503 в CI
- симптом
- Каждый plan в одном проекте падал на чтении remote state из GitLab.
- причина
- В раннере стоял NO_PROXY заглавными буквами без хоста GitLab, и запросы к state шли через прокси.
- решение
- Задал NO_PROXY на уровне проекта и отдельно доказал, что API терял переменные пайплайна.
- итог
- State отвечает за ~0,07 с, пайплайн зелёный.
- SEV-2INC-04● решено
403 на всех ингрессах с белым списком после переезда
- симптом
- Пользователи из VPN получали 403 на всех ингрессах с белым списком IP.
- причина
- externalTrafficPolicy: Cluster прятал адрес клиента, и белые списки видели только адреса нод.
- решение
- Переключил на Local и скриптом обновил белые списки с сохранением прежних значений.
- итог
- Исправлено 132 из 136 ингрессов за один проход.
последние статьи
ls blog/ →свои проекты
Xelvix VPN
Построил и веду коммерческий VPN-сервис на нескольких нодах: мастер и 3 ноды на VLESS + Reality (3x-ui), около 50 платящих пользователей и 25 онлайн в сутки.