Поддержка и настройка Kubernetes

Сопровождаю Kubernetes-кластеры небольших IT-команд в облаке и on-premise: Managed Kubernetes в Yandex Cloud и Selectel, K3s и kubeadm на ваших серверах, в том числе в закрытом контуре.

Слежу, чтобы кластер вовремя обновлялся, поды не падали, ресурсы не простаивали, а выкладка шла из Git. И честно говорю, если проекту Kubernetes не нужен и хватит Docker Compose на одном сервере.

  • Облако и on-premise
  • Managed K8s, K3s, kubeadm
  • Helm, ArgoCD

Что входит в поддержку Kubernetes

Можно взять один пункт, например только обновление версии, или передать кластер на сопровождение целиком.

Развёртывание кластера

Поднимаю кластер, который описан в коде и который можно пересоздать с нуля.

  • ✓Managed Kubernetes в Yandex Cloud или Selectel
  • ✓on-premise: K3s или kubeadm на ваших серверах
  • ✓ingress, сертификаты, хранилище
  • ✓Terraform и Helm вместо ручных команд

Обновление версий

Kubernetes выпускает новую версию примерно раз в 4 месяца. Обновляю по плану, а не когда провайдер обновит принудительно.

  • ✓проверка устаревших API до обновления
  • ✓обновление control plane, нод и аддонов
  • ✓обновление по одной ноде без простоя
  • ✓план отката

Ресурсы и стабильность

Большинство падений подов - это неверные лимиты и отсутствие проверок здоровья.

  • ✓requests и limits по реальному потреблению
  • ✓liveness и readiness-пробы
  • ✓автомасштабирование подов и нод
  • ✓PodDisruptionBudget для безопасных обновлений

Мониторинг и логи

Видно не только что упало, но и почему.

  • ✓метрики кластера, нод и приложений
  • ✓логи всех подов в одном месте
  • ✓алерты в Telegram
  • ✓дашборды для команды

CI/CD и GitOps

Релиз должен идти из Git и откатываться одной командой, а не через kubectl с ноутбука.

  • ✓Helm-чарты для сервисов
  • ✓пайплайны GitLab CI или GitHub Actions
  • ✓GitOps через ArgoCD
  • ✓окружения для разработки и продакшена

Безопасность

Закрываю типичные дыры, которые остаются в кластерах после быстрого старта.

  • ✓RBAC и отдельные доступы для людей и CI
  • ✓сетевые политики между сервисами
  • ✓секреты вне Git
  • ✓проверка образов на уязвимости

Бэкапы

Кластер можно пересоздать из кода, а данные нет. Поэтому бэкапы и проверка восстановления обязательны.

  • ✓бэкап манифестов и persistent volumes
  • ✓бэкап баз за пределами кластера
  • ✓хранение в S3
  • ✓плановая проверка восстановления

Аудит кластера

Разбираю кластер, доставшийся от прежней команды, и составляю план.

  • ✓версии и сроки поддержки
  • ✓ресурсы и стоимость нод
  • ✓доступы, секреты, сетевые политики
  • ✓ответ, нужен ли вам Kubernetes вообще

Стоимость поддержки Kubernetes

Цены фиксированные. Работы сверх сопровождения согласуем и оцениваем заранее.

ФорматЦенаЧто входит
Аудит кластераот 10 000 ₽версии, ресурсы, доступы, деплой, мониторинг, бэкапы; отчёт с планом
Сопровождение20 000 ₽/меснаблюдение за алертами и нодами, планирование обновлений, реакция на сбои
Разовые работы3 000 ₽/часобновление версии, мониторинг, перенос сервисов в кластер

Примеры расчёта

ЗадачаОценка
Обновление кластера на одну минорную версию2-6 часов
Мониторинг и алерты для кластера и приложений4-8 часов
Перенос сервисов из Docker Compose в кластерот 10 часов
Настройка деплоя через ArgoCD4-8 часов

Этапы работы

  1. 1

    Доступ на чтение

    Начинаю с kubeconfig только на чтение: посмотреть кластер можно, ничего не сломав.

  2. 2

    Карта кластера

    Версии, ноды, нагрузка, что и как деплоится, где хранятся секреты и данные.

  3. 3

    Риски

    Отмечаю, что сломается первым: устаревшие API, поды без лимитов, отсутствие бэкапов.

  4. 4

    План работ

    Предлагаю порядок работ. Иногда это переезд на K3s или Docker Compose вместо ремонта кластера.

  5. 5

    Сопровождение

    Если нужно, остаюсь на поддержке: обновления по графику, алерты, помощь команде с деплоем.

С какими проблемами приходят

Кластер достался от прежнего DevOps

Документации нет, версия давно не поддерживается, и никто не знает, что сломается при обновлении.

Поды перезапускаются, причину никто не ищет

OOMKilled, CrashLoopBackOff, ноды под нагрузкой. Обычно это лимиты и пробы, а не «Kubernetes глючит».

Кластер стоит дороже, чем должен

Ноды загружены на 15%, тестовые окружения работают круглосуточно, балансировщиков больше, чем сервисов.

Выкладка вручную

Релизы идут через kubectl apply с ноутбука, и повторить вчерашний деплой никто не может.

Нужен ли вам Kubernetes

Kubernetes решает реальные задачи, но стоит денег и времени на сопровождение. Короткая проверка:

Подходит, еслиСкорее не нужен, если
больше 5-10 сервисов и несколько окружений1-3 сервиса на одном-двух серверах
нагрузка меняется и нужно автомасштабированиенагрузка стабильная и предсказуемая
важно выкатывать обновления без простоякороткий простой при релизе допустим
в команде есть кто-то, кто будет с ним работатьнекому сопровождать кластер

В MomsLab переход с полного K8s на K3s сократил бюджет на инфраструктуру на 40%.

Kubernetes, K3s или Docker Compose

Три варианта, между которыми обычно выбирают небольшие команды:

KubernetesK3sDocker Compose
Для чегомного сервисов, рост, облакото же, но 1-5 нод и меньше ресурсовнесколько сервисов на одном сервере
Сложностьвысокаясредняянизкая
Совместимостьстандарттот же API, те же Helm-чартысвой формат, без кластера
Экосистемавсяпочти всятолько Docker

Переход между Kubernetes и K3s почти бесшовный: манифесты и чарты те же. Из Compose в Kubernetes сервисы придётся описать заново: манифесты или Helm-чарты.

Технологии

Кластеры
Managed KubernetesK3skubeadmAWS EKS
Инструменты
kubectlk9s
Деплой
HelmArgoCDGitLab CIGitHub Actions
Мониторинг
PrometheusGrafanaLokiVictoriaMetrics
Безопасность
RBACNetworkPolicyTrivyVault
Инфраструктура
TerraformAnsibleYandex CloudSelectel

Примеры работ

Приложение для мам: с K8s на K3s

Небольшой проект работал на полноценном Kubernetes, и инфраструктура стоила больше, чем требовал его масштаб.

Перевёл сервисы на K3s с теми же Helm-чартами и пайплайнами GitLab, поставил отказоустойчивый вход с переключением по DNS, настроил метрики, логи и бэкапы с проверкой восстановления.

−40%расходов на инфраструктуру

Автономные тракторы: кластер для IoT

Для флота автономных тракторов нужна была платформа управления, видео с машин в реальном времени через GSM и защищённая сеть на поле.

Развернул кластер в AWS EKS с выкладкой через ArgoCD, изолировал сеть тракторов через WireGuard и взаимную TLS-аутентификацию.

100+машин под управлением платформы

Почему со мной удобно

Сертифицированный администратор

CKA от The Linux Foundation: экзамен сдаётся на живом кластере, а не тестом.

Не продаю Kubernetes

Если проекту хватит K3s или Docker Compose, скажу об этом на аудите.

Плата за дело, а не за штат

Сопровождение одного кластера не должно стоить как зарплата инженера.

Всё в Git

Конфигурация кластера и сервисов хранится в коде у вас. Её подхватит любой инженер.

Частые вопросы

Чем Kubernetes отличается от Docker? +

Docker упаковывает приложение в контейнер и запускает его на одном сервере. Kubernetes управляет контейнерами на многих серверах: перезапускает упавшие, распределяет нагрузку, обновляет без простоя. Образы остаются те же.

Managed Kubernetes или on-premise? +

Небольшим командам обычно лучше Managed (Yandex Cloud, Selectel): провайдер обслуживает управляющую часть кластера. Кластер on-premise на K3s или kubeadm дешевле на выделенных серверах и нужен, если данные должны оставаться в своём контуре, но требует больше внимания.

Как часто нужно обновлять Kubernetes? +

Новая минорная версия выходит примерно раз в 4 месяца, каждая поддерживается около 14 месяцев. Без обновлений кластер за год выпадает из поддержки, а в облаках провайдер начинает обновлять его принудительно.

Сколько стоит поддержка Kubernetes? +

Сопровождение стоит 20 000 ₽ в месяц: алерты, состояние нод, планирование обновлений и реакция на сбои. Задачи сверх этого считаются по 3 000 ₽/час. Аудит кластера стоит от 10 000 ₽.

Что такое K3s и подойдёт ли он нам? +

K3s - облегчённый Kubernetes с тем же API: те же манифесты и Helm-чарты, но меньше требований к ресурсам и проще обслуживание. Хорошо подходит для 1-5 нод и ограниченного бюджета.

Какой доступ вам нужен? +

Для аудита хватает kubeconfig с правами только на чтение. Для работ нужен доступ администратора кластера, его можно выдать на время и отозвать.

Оставить заявку

Напишите, где работает кластер, сколько в нём нод и сервисов и что беспокоит. Скажу, с чего начать и нужен ли вам вообще Kubernetes.

Смотрите также