DevOps | Linux | Разное

Массовое восстановление индексов Elasticsearch из snapshot с переименованием

Часто надо восстановить индексы, чтобы провалидировать логи за длительное время. И для анализа логов, нам не требуется отказоустойчивость, в данном скрипте, индексы восстанавливаются сразу с переименованием и с отключенными репликами. Скрипт требует доступа к elastic напрямую. У меня это работа eck оператора в namespace logging в кластере kubernetes по https и с авторизацией

Continue Reading...

Разное

Helm, StatefulSet и cascade=orphan

Иногда необходимо удалить/пересоздать полностью с kubernetes стейтфулсет, но при этом оставить данные в pvc и рабочие pod’ы. К примеру, у нас есть postgres в кубере, где-нибудь на стейджингах, и заезжает новый чарт с другими тегами. Стейтфулы нельзя пропатчить и Helm получает в ответ ошибку: Что делать? Тут вариант либо руками править теги, либо, в данном […]

Continue Reading...

DevOps | Linux

Jenkins Pipeline With k8s Staging

Требование: С помощью Jenkins Pipeline на каждый пул-реквест поднимать стейдж окружение и делать web-доступ на индивидуальном поддомене в kubernetes кластере, чтобы прогонять тесты, проверять гипотезы и предоставлять заказчику preview выполненной работы. Описание: Для каждого PR поднимается свой деплой со своими deployment, service, ingress в namespace project-stage. Удаляются дейплои после закрытия PR с помощью скрипта и […]

Continue Reading...

Linux | DevOps

True Blue-green deploy to kubernetes

Проблема При дефолтном роллауте какое-то время одновременно доступны старый и новый деплоймент. Для некоторых приложений это критично, если изменения в коде не обратносовместимые. (к примеру, используется CDN и имена файлов не меняются, а меняются только аргументы обращений к ним: /index.0.js?t=12G33s15c) Такая стратегия обновления называется ramped. Решение Честный blue-green, когда переключение со старой версии софта на новую […]

Continue Reading...

Linux | DevOps | Network

Kubernetes blue-green 502 error

Проблема Во время, казалось бы, blue-green деплоя в k8s кластер, когда минимум 2 реплики, иногда проскакивают 502-е ошибки bad gateway. Причина Процесс в контейнере завершается быстрее, чем разойдутся правила iptables по нодам кластера (сервис продолжает слать трафик на удаленный контейнер). Решение Добавить sleep в prestop контейнера (sleep должен укладываться в grace период деплоймента).

Continue Reading...