p_nikitin

DevOps-инженер, K8s, Proxmox, автоматизация

30 Апреля
Публикации p_nikitin

Kubernetes в production: 30 уроков за 3 года эксплуатации

Статья DevOps

Всем привет! Меня зовут Павел Никитин, и я занимаюсь DevOps-инженерией — Kubernetes, Proxmox, автоматизация CI/CD. За 3 года эксплуатации K8s в production накопил много граблей. Делюсь.

Kubernetes — мощный инструмент, но он наказывает за небрежность. Вот главные уроки.

Ресурсы

  1. **Всегда ставьте…
34

Proxmox VE 8.2: разворачиваем кластер на трёх нодах за вечер

Пятница, шесть вечера. Тимлид пишет в Slack: «К понедельнику нужен отказоустойчивый кластер для dev-стенда. Бюджет — 135 тысяч. Виртуалки, сеть, шаред-сторадж. Удачи». Знакомо? Мне — да, причём не в первый раз. В этой статье покажу, как я за выходные поднял Proxmox VE 8.2 кластер на трёх б/у серверах и получил инфраструктуру, которая не уступает решениям за миллион.

150

Проброс GPU в виртуальную машину — с чего начать?

Хочу пробросить NVIDIA RTX 4090 в виртуалку KVM для ML-задач. Читал про VFIO и PCIe passthrough, но не понимаю с чего начать. Нужно ли отдельное ядро? Какие ограничения на материнскую плату? Есть ли смысл или лучше использовать bare metal?

43

Ansible vs Terraform: когда что использовать

Статья DevOps

Один из самых частых вопросов от людей, которые начинают разбираться в DevOps: «А зачем мне Terraform, если есть Ansible? Или наоборот?». Эти инструменты постоянно ставят рядом и сравнивают, хотя они решают разные задачи. Разберём на конкретных примерах.

427

Prometheus + Grafana: мониторинг 100 серверов с нуля

Когда серверов становится больше десяти, мониторинг перестаёт быть опциональным. Когда их сто — он становится вопросом выживания. Prometheus + Grafana сегодня де-факто стандарт для метрик в Linux-инфраструктуре. Расскажу, как поднять полноценный стек с нуля, включая алерты в Telegram.

687
✍️
Публикуйте, отвечайте, комментируйте
Присоединяйтесь к сообществу KVAN.AI

Docker Compose vs Kubernetes: где проходит граница

Статья DevOps

«Нам нужен Kubernetes» — фраза, которую я слышу от команд с пятью микросервисами на одном сервере. И «Docker Compose нам хватит» — от компаний, у которых реально нужна отказоустойчивость. Разберёмся, где проходит реальная граница.

528

LXC vs Docker: контейнеры, которые вы недооцениваете

Когда говорят «контейнеры», большинство сразу думают о Docker. Но Docker — это не единственный и далеко не всегда лучший инструмент. LXC существует с 2008 года и решает совершенно другой класс задач. Разберёмся, чем они принципиально отличаются и когда что использовать.

387

GitLab CI/CD: пайплайн для деплоя на 50 серверов

Статья DevOps

Деплоить на один сервер умеет любой скрипт. Деплоить на 50 серверов одновременно, с контролем ошибок, роллбэком и без потери сна — это уже инженерная задача. Разберём как построить такой пайплайн на GitLab CI/CD.

446

Terraform state: как не потерять инфраструктуру

Статья DevOps

Terraform state: как не потерять инфраструктуру

Terraform хранит всё своё знание об инфраструктуре в одном файле — terraform.tfstate. Пока вы работаете в одиночку и держите его локально, всё выглядит просто. Но стоит появиться второму инженеру или второму ноутбуку — и начинается хаос: конфликты, потерянные ресурсы, задвоенные машины. Разберёмся, как устроен state, почему он критичен и как правильно с ним работать в команде.

376

Helm Charts: пакетный менеджер для Kubernetes

Статья DevOps

Helm Charts: пакетный менеджер для Kubernetes

Деплоить приложение в Kubernetes вручную — писать десятки YAML-файлов, следить за их версиями, передавать коллегам через git с магическими комментариями. Helm решает эту проблему, превращая набор манифестов в переиспользуемый пакет с параметрами, историей релизов и возможностью отката. По сути, это apt или yum для вашего кластера.

306

Makefile для DevOps: автоматизация рутины

Статья DevOps

Makefile для DevOps: автоматизация рутины

В каждом проекте со временем накапливается набор команд, которые нужно запускать регулярно: собрать образ, запустить тесты, задеплоить в staging, почистить старые контейнеры. Эти команды оседают в README, в головах инженеров, в случайных скриптах. Makefile — простой и проверенный временем способ собрать всё в одном месте и сделать команды самодокументируемыми.

236

Alertmanager: алерты которые не бесят

Статья Мониторинг

Alertmanager: алерты которые не бесят

Если вы когда-нибудь просыпались в три ночи от очередного уведомления о том, что CPU загружен на 80% — добро пожаловать в клуб. Alertmanager, компонент экосистемы Prometheus, создан именно для того, чтобы превратить хаотичный поток алертов в управляемую, осмысленную систему уведомлений. В этой статье разберём, как настроить его так, чтобы дежурный инженер получал только то, что действительно требует внимания.

296

Grafana Loki: логирование без Elasticsearch

Статья Мониторинг

Grafana Loki: логирование без Elasticsearch

Elasticsearch — мощный инструмент, но его аппетиты к RAM и дисковому пространству умеют удивлять даже опытных администраторов. Grafana Loki предлагает принципиально иной подход: вместо полноценной индексации содержимого логов он индексирует только метки (labels), а сами строки хранит в сжатом виде. Результат — на порядок меньшее потребление ресурсов при вполне приемлемой функциональности для большинства сценариев.

367

KVM и libvirt: виртуализация без GUI

KVM и libvirt: виртуализация без GUI

VMware стоит денег, VirtualBox — для рабочего стола, а Proxmox тащит за собой целый веб-стек. Иногда нужно просто поднять несколько виртуальных машин на голом сервере без лишних зависимостей и красивых панелей. KVM + libvirt — это именно тот вариант: производительная виртуализация уровня ядра с управлением через командную строку.

286

Vagrant для тестовых окружений: быстрый старт

Vagrant для тестовых окружений: быстрый старт

«На моей машине всё работает» — классика жанра, которую Vagrant призван уничтожить ещё до появления контейнеров. Сегодня, когда Docker занял значительную часть этой ниши, Vagrant остаётся незаменимым там, где нужны полноценные виртуальные машины: тестирование ядра, работа с systemd, эмуляция multi-server окружений, тестирование Ansible-ролей на чистых системах.

196