Pull to refresh
8
Павел Куделин@dnbstd

DevOps Инженер, Системный Администратор

6
Subscribers
Send message

Blockstor: Kubernetes-native альтернатива LINSTOR, которую мы готовим как отдельный CNCF-проект

Level of difficultyEasy
Reading time7 min
Reach and readers8.1K

Всем привет. Мы в Ænix давно занимаемся Kubernetes-платформами, bare metal-инфраструктурой и Cozystack, поэтому тема блочного хранилища для Kubernetes у нас не теоретическая. Это та часть стека, где красивых абстракций быстро становится мало: надо переживать падения нод, понимать топологию, реплицировать данные, не ломать PVC, дружить с CSI и при этом оставаться предсказуемыми для операторов.

Сегодня хотим показать первый публичный результат этой работы — Blockstor 0.1.0.

Blockstor — это открытая система управления распределенным блочным хранилищем для Kubernetes. Она использует DRBD для репликации данных, совместима с REST API LINSTOR и написана на Go как самостоятельная clean-room реализация. Код распространяется под Apache 2.0.

Читать далее

Балансировка входящего трафика на железе: как надёжно вывести K8s наружу с MetalLB, BGP и L2 (подход от Deckhouse)

Level of difficultyMedium
Reading time11 min
Reach and readers11K

На bare metal внешний доступ к Kubernetes часто становится головной болью: NodePort с рандомными нестандартными портами не для продакшена, а облачного балансировщика нет. MetalLB превращает обычные узлы кластера в полноценный балансировщик с автоматическим failover. Разбираем режимы BGP и L2, а ещё показываем фишку Deckhouse Kubernetes Platform, которая спасает активные соединения при падении узла.

Читать далее

Tetragon: лучшие практики и нюансы разработки Tracing Policy

Level of difficultyHard
Reading time29 min
Reach and readers8.5K

Привет! Меня зовут Виталий Шишкин, я эксперт продукта PT Container Security. За годы работы над продуктом MaxPatrol 10 мы строили аудит Linux на базе подсистемы auditd, которая решала свою задачу и достаточно просто настраивалась, но ситуация поменялась с появлением контейнеров, которые auditd корректно поддерживать не умеет. Поэтому эта задача потребовала не просто смену решения для аудита системы, но и создание целого продукта, который сможет учитывать особенности Kubernetes и используемые им технологии ядра Linux.

Читать далее

Используем Coolify для хостинга проектов на своём VPS. Часть 1: готовим сервер, домен, DNS и файрвол

Level of difficultyEasy
Reading time23 min
Reach and readers12K

Coolify это инструмент с открытым исходным кодом, который позволяет удобно хостить бэкенд- и фронтенд- веб-приложения, базы данных и многие популярные open-source сервисы, вроде n8n.

И хотя начать пользоваться Coolify не так уж сложно, но как и везде, тут есть свои особенности. Поэтому мы и решили написать инструкцию. Однако в процессе стало понятно, что просто рассказать про работу с Coolify недостаточно. Потому что нужно показать и подготовительную работу — как правильно выбрать VPS, как купить домен, как настроить DNS и файрвол (firewall).

Поэтому мы решили первую часть нашей инструкции посвятить исключительно вопросам подготовки. Расскажем максимально подробно, чтобы разобраться мог даже человек, который впервые слышит про сервера и домены. А уже во второй части, которая выйдет чуть позже, мы непосредственно займемся самим Coolify — его установкой, настройкой и использованием.

Читать далее

Пошаговое руководство: Установка отказоустойчивого кластера Kubernetes 1.35 с помощью kubeadm на Ubuntu 24.04

Level of difficultyEasy
Reading time12 min
Reach and readers7.6K

Полное руководство по развертыванию высокодоступного кластера Kubernetes 1.35 на Ubuntu 24.04

Эта подробная техническая статья представляет собой пошаговое руководство по созданию отказоустойчивого кластера Kubernetes версии 1.35 с использованием утилиты kubeadm. В руководстве рассматривается развертывание производственного кластера с тремя master-нодами и тремя worker-нодами, что обеспечивает высокую доступность и отказоустойчивость.

Читать далее

Прощай, Ingress. Здравствуй, Gateway API

Level of difficultyEasy
Reading time13 min
Reach and readers21K

Когда проект Kubernetes только начинал свой путь, вопрос как пустить трафик в кластер решался просто: как-нибудь. Сервисы торчали наружу через NodePort, потом появился LoadBalancer, а чуть позже — объект Ingress, который на долгие годы стал стандартной точкой входа в HTTP-мир Kubernetes.

Ingress был своевременным решением. Он дал декларативный способ описывать маршрутизацию, TLS и виртуальные хосты, не заставляя инженеров напрямую настраивать nginx-конфиги или HAProxy руками. Для своего времени — шаг вперёд, и весьма заметный. Проблема в том, что Kubernetes рос быстрее, чем сам Ingress.

Со временем выяснилось, что спецификация Ingress намеренно минималистична. В ней нет ни чёткого разделения ответственности, ни расширяемой модели, ни нормального способа описывать сложные сценарии маршрутизации. Всё, что выходило за рамки базового use case, уезжало в аннотации ingress-контроллеров. В результате у нас появился единый стандарт, который на практике вёл себя по-разному в зависимости от того, какой контроллер стоял в кластере. Формально — Ingress, фактически — vendor-specific конфигурация с YAML-обвязкой.

Читать далее

Kubernetes и FluxCD: Восстановление кластера с хранением состояния, дампов и секретов в S3

Level of difficultyMedium
Reading time12 min
Reach and readers8.2K

При проектировании инфраструктуры часто возникает задача поднять кластер «с чистого листа». Безусловно, Terraform и Ansible — это стандарт индустрии. Однако мне нужен был процесс быстрого получения готового кластера K8s, полностью независимый от локального окружения, чтобы запуск не требовал предварительной подготовки версий библиотек, интерпретаторов или наличия локальных файлов конфигурации.

В этой реализации я намеренно упростил работу с конфигурацией: параметры виртуальных машин (CPU, RAM, диски) описаны прямо в коде (см. config.go). Я решил, что проектирование гибкой системы внешних конфигов можно оставить на потом, чтобы на данном этапе не отвлекаться и сфокусироваться на главной задаче — отладке самого механизма восстановления и связности компонентов.

Я реализовал подход полной автоматизации с использованием технологий, которыми увлекаюсь. Суть проста: на машине CI-раннера нет ничего, кроме одного бинарного файла. Всё состояние кластера (IP-адреса, ID дисков), дампы баз данных и зашифрованные секреты хранятся в S3. Это позволяет восстановить кластер в исходное состояние даже после полного удаления, просто вытянув актуальное состояние из облачного хранилища.

В этой статье я поделюсь опытом создания кастомного CLI для подготовки инфраструктуры и использования FluxCD для развертывания приложений. А для проверки результата я использую Yandex Cloud Managed Kubernetes, чтобы запустить K6 Operator и дать внешнюю нагрузку в 1000 пользователей на восстановленные сервисы.

Читать далее

Катастрофоустойчивый Kubernetes: как использовать балансировщик MetalLB с BGP-anycast

Level of difficultyMedium
Reading time18 min
Reach and readers11K

Клиенты часто спрашивают, как построить геораспределенный и катастрофоустойчивый Kubernetes. Так, чтобы при отказе целого дата-центра нагрузка переключалась на резервную площадку без смены IP-адресов сервисов.

Можно возразить, что проще изменить DNS-запись и направить трафик на инстанс в другом дата-центр. Но есть риск: кэширование на рекурсорах некоторых провайдеров может негативно повлиять на доступность. Они иногда игнорируют TTL и хранят старые данные неопределенный срок. Поэтому в таких сценариях крайне желательно сохранить IP-адрес.

Один из элементов «мозаики» такой геораспределенной системы — балансировщик нагрузки с возможностью использования адресов из anycast-подсети, которую выделяет поставщик услуг. В этой статье мы не будем затрагивать вопрос передачи данных и их консистентность на двух разных площадках — разберем только сетевую составляющую. Подробности под катом!

Читать далее

Инструкция по настройке Удостоверяющего Центра (CA) на базе HashiCorp Vault и OpenSSL в Kubernetes

Level of difficultyMedium
Reading time15 min
Reach and readers9.7K

Эта инструкция представляет собой полное руководство по развертыванию отказоустойчивого кластера HashiCorp Vault в Kubernetes и настройке двухуровневой Public Key Infrastructure (PKI). Корневой сертификат и промежуточный CA создаются через OpenSSL, но промежуточный импортируется и настраивается в Vault для повседневного выпуска сертификатов. Инфраструктура интегрируется с cert-manager для автоматического управления жизненным циклом TLS-сертификатов.

Читать далее

Варианты реализации GitOps при помощи Argo CD

Level of difficultyMedium
Reading time8 min
Reach and readers7.3K

В «Экспресс 42» — подразделении «Фланта», которое консультирует компании по DevOps-практикам, — решили проверить, как можно реализовать GitOps по модели BSA (Base, Service, Application) с помощью Argo CD. Чистый эксперимент на тестовом репозитории.

Мы попробовали четыре подхода — от отдельного ApplicationSet на каждое окружение до матричного генератора — и оценили их по изоляции окружений, соблюдению принципа DRY, поддержке временных стендов, масштабируемости и другим критериям. В статье — кратко о самой модели и каждом варианте с их плюсами и минусами.

Читать далее

Развертывание кластера Kubernetes с помощью Cluster API + Proxmox VE провайдер на Orange Pi 5 Plus (ARM64)

Level of difficultyMedium
Reading time18 min
Reach and readers18K

Можно ли запустить Kubernetes с Cluster API на Proxmox прямо на Orange Pi 5 Plus? Да, и это отличный способ собрать домашнюю лабораторию. В этой статье я описал как развернул Kubernetes-кластер с помощью Cluster API на Proxmox, установленном на Orange Pi 5 Plus ARM64 и получил компактное, но мощное решение для домашнего k8s-стенда

Читать далее

Как подружить Bitwarden CLI с пайплайном деплоя

Level of difficultyMedium
Reading time6 min
Reach and readers9.5K

Недавно впервые занялся деплоем своих проектов и столкнулся с привычной для новичка проблемой: как аккуратно подгружать секреты для бэкенда и фронтенда. На словах всё просто: подключи .env. На деле — копипаст, дублирование, отсутствие истории и точного контроля доступа.

Решение — Bitwarden Secrets Manager + CLI. Централизованно храним ключи, раздаём доступ выборочно и автоматически подтягиваем их при деплое. В статье покажу, как настроить всё с Docker, NestJS, Vite и Coolify, чтобы деплой стал безопасным и удобным.

Читать далее

Clickhouse / zookeeper. Развертывание

Level of difficultyMedium
Reading time9 min
Reach and readers9.5K

Всем привет!

В этой статье мы разберём, как развернуть кластер ClickHouse с использованием ZooKeeper для обеспечения репликации и отказоустойчивости. Я покажу пошаговую настройку сервисов, объясню, зачем ZooKeeper нужен ClickHouse, какие порты и конфигурации используются, а также поделюсь практическими советами по работе в Kubernetes.

Читать далее

Автомасштабируем узлы кластера Kubernetes. Часть 1

Reading time10 min
Reach and readers8.6K

Автомасштабирование узлов кластера Kubernetes и горизонтальное масштабирование подов позволяют быстро расширить ресурсы при пиковых нагрузках. Но сложные приложения могут не нагружать поды или узлы максимально, но требовать дополнительных ресурсов, например, для параллельной обработки нескольких объектов в очереди. Триггером масштабирования кластера может быть не утилизация, а события от внешних систем — например, очереди сообщений Kafka, системы мониторинга Prometheus или от платформы CI/CD.

Всем привет! Меня зовут Илья Смирнов, я архитектор решений в Cloud.ru. Расскажу, как лучше справляться с пиковыми нагрузками, если вы развернули свое приложение в кластере Kubernetes. Вместе запустим такое демо-приложение и посмотрим, как с ним работают классические подходы автомасштабирования — в этой части, а затем попробуем масштабировать кластер по событиям с помощью KEDA (Kubernetes-based Event Driven Autoscaler) — в следующей. Не пропустите!

Читать далее

SSH с авторизацией в Keycloak? Легко

Level of difficultyMedium
Reading time4 min
Reach and readers20K

Привет, %username%! Уважаю твое личное время, поэтому без лишних слов - сразу к делу. В этой статье я кратко опишу, как настроить доступ к удаленному серверу по SSH с использованием Keycloak. Разберем, в чем преимущества этого решения, и что именно происходит в процессе такой авторизации.

Читать далее

Выбираем архитектуру данных для компании: руководство от дата-инженера

Level of difficultyMedium
Reading time16 min
Reach and readers17K

Сегодня данные превратились в один из главных активов бизнеса. От того, как компания их использует, зависит и качество принимаемых решений, и эффективность процессов, и шансы обойти конкурентов. 

Эпоха, когда бизнесу достаточно было просто владеть данными, осталась в прошлом. Теперь их нужно интерпретировать, делать легкодоступными, встраивать системы, поддерживающие принятие решений. При этом объемы данных растут, их форматы множатся, а сценарии использования — усложняются.

Чтобы справиться с этим, компании переходят на более гибкие подходы к управлению данными. В этой статье разберем четыре наиболее популярные архитектуры: Data Warehouse, Data Lake, Data Lakehouse и Data Mesh. Обсудим, чем они отличаются и какую выбрать под конкретные задачи.

Читать далее

С монолита на микросервисы: проблемы, решения, практические рекомендации

Level of difficultyMedium
Reading time12 min
Reach and readers18K

Переход на микросервисы — это не просто тренд. Для многих компаний это стало необходимостью. Монолитные приложения, которые когда-то служили верой и правдой, начинают трещать по швам под нагрузкой. Они медленно собираются. Их сложно обновлять. Малейшая ошибка в одном модуле может обрушить всю систему.

Микросервисы обещают решение. Гибкость. Масштабируемость. Независимые команды. Быстрые релизы. Звучит идеально. Но дорога к этой цели усеяна ловушками. Я видел проекты, которые провалились, потратив миллионы. Они просто поменяли один большой клубок проблем на десятки маленьких.

Читать далее

Kubernetes Community Day: ключевые выступления про кубер

Reading time2 min
Reach and readers7.8K

31 июля прошла большая конференция Kubernetes Community Day, которую проводил программный комитет из команды «Штурвала», Yandex Cloud, VK и Ænix. Собрали для вас ключевые доклады и презы под катом.

Кто был там — поделитесь впечатлениями в комментариях!

Читать далее

VRL — просто, подробно и понятно

Level of difficultyMedium
Reading time20 min
Reach and readers7.7K

Vector Remap Language (VRL) — это мощный и гибкий инструмент, встроенный в Vector, для обработки и трансформации данных, который позволяет разработчикам эффективно манипулировать логами, метриками и событиями в реальном времени

Читать далее

Поднимаем кластер k8s на Talos Linux

Level of difficultyMedium
Reading time15 min
Reach and readers9.7K

Наша команда добавила к себе в список доступных для установки новую OS — Talos Linux. В этой статье мы постараемся рассказать, что такое Talos Linux, и в чем его удобство перед остальными OS для кластера Kubernetes. Дополнительно мы развернем тестовый кластер, на который задеплоим наше первое приложение.

Читать далее

Information

Rating
Does not participate
Location
Симферополь, Республика Крым, Россия
Date of birth
Registered
Activity

Specialization

DevOps-инженер
Ведущий
Python
Git
Linux
PostgreSQL
Docker
Высоконагруженные системы
RabbitMQ
Golang
Kubernetes
Nginx