Обновить
94.17

Kubernetes *

ПО для работы с контейнерными приложениями

Сначала показывать
Порог рейтинга
Уровень сложности

Собираем собственный сервис-меш

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7K

В этой статье автор рассказывает о том, как самостоятельно построить сервис-меш с помощью современных инструментов и Open Source-решений. Материал будет полезен разработчикам и инженерам, интересующимся внутренним устройством сервис-мешей, их преимуществами, а также возможностями настройки и кастомизации под собственные нужды.

Читать далее

Политики безопасности k8s gatekeeper OPA. Интеграция с GO

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8K

Поговорим о политиках безопасности в кубере. Обсудим на примерах зачем они нужны, в каких случаях они действительно помогут обезопасить, когда политики могут положить всю систему и как ими пользоваться в кубере. Плюсом захватим немного кода на go для работы с ними. И увидим, как одной политикой поломать кубер!

Читать далее

etcd в Kubernetes: разбираемся с задержками

Время на прочтение10 мин
Охват и читатели5.8K

Эта статья будет полезна DevOps-инженерам, SRE-специалистам и всем, кто работает с Kubernetes и хочет глубже понять его внутренние механизмы. Если вы настраиваете, масштабируете или устраняете неполадки в кластере K8s, важно разобраться в etcd — распределенном key-value-хранилище, которое лежит в основе отказоустойчивости Kubernetes.

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

В этой статье мы разберем распространенные мифы о etcd, а также дадим практические рекомендации по его настройке и эксплуатации.

В основе материала — перевод опубликованных исследований инженеров Red Hat. Примечание редактора: Нам показалось, что авторы хорошо знакомы с механизмами etcd, но мало разбираются в работе СХД, поэтому мы дополнили перевод своими комментариями.

Читать далее

Как развернуть простой Kubernetes-кластер с VictoriaMetrics? Пособие для начинающих

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.1K

Развертывание Kubernetes-кластера и системы мониторинга часто воспринимается как сложная задача, которая требует глубоких знаний и значительных временных затрат. Однако современные инструменты автоматизации позволяют существенно упростить этот процесс, поэтому разобраться смогут и начинающие специалисты.

Привет, Хабр! Меня зовут Катя Низовцева, я системный администратор в Selectel. В этой статье мы подробно рассмотрим, как с помощью Kubespray быстро и эффективно развернуть работоспособный Kubernetes-кластер, а также интегрировать с ним систему мониторинга VictoriaMetrics. Этот подход особенно полезен, когда необходимо оперативно создать тестовое окружение или подготовить базовую инфраструктуру для дальнейшего развития.

Читать далее

Успех секрета: как доставлять секреты в приложения безопасно и без головной боли

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.1K

Мы видели много инфраструктур и встречали самые разные способы доставки секретов в приложения, развёрнутые в кластерах Kubernetes. Но ни один из этих способов не был одновременно удобным и по-настоящему безопасным. В статье расскажем про существующие варианты, посмотрим на их плюсы и минусы и поделимся тем, как мы решали задачу доставки секретов в Deckhouse Kubernetes Platform. 

Читать далее

Как разработать CSI-драйвер с поддержкой Swordfish API и запустить его без железа

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6.6K

Контейнерные приложения все чаще требуют постоянного хранилища, будь то базы данных, кэш или файловые серверы. Но Kubernetes по умолчанию не «умеет» работать напрямую с системами хранения данных, в этом ему помогает CSI (Container Storage Interface). А если хочется управлять хранилищем через единый стандарт и без привязки к конкретному вендору, на помощь приходит спецификация Swordfish.

В статье расскажем, как мы в лаборатории реализовали CSI-драйвер, поддерживающий спецификацию Swordfish и создали сервер-эмулятор, позволяющий тестировать и разворачивать такую систему без физического оборудования — и поделимся этим эмулятором, чтобы вы могли попробовать сами. 

Читать далее

Как спрятать сontrol plane Kubernetes от любопытных глаз

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.2K

Control plane Kubernetes — как сейф с главными ключами. Он управляет кластером, хранит sensitive-информацию и зачастую представляет собой лакомую цель для злоумышленников. 

В этой статье — разбор того, как спрятать control plane в сервисе Managed Kubernetes, предоставляемом в облаке: зачем это нужно, какие варианты существуют и с какими проблемами мы столкнулись на практике. Рассмотрим несколько open source решений, которые протестировали у себя в поисках надёжного способа изолировать control plane-ноды от пользователя и сделать их недоступными для какого-либо внешнего взаимодействия.

Меня зовут Каиржан, я DevOps/Software-инженер в команде разработки
MWS Cloud Platform, пишу на Go под Kubernetes и ClusterAPI. Наша команда разрабатывает сервис Managed Kubernetes для публичного облака — от инфраструктуры до собственных провайдеров для ClusterAPI. Поэтому вопрос безопасности control plane (CP) для нас стоит особенно остро.  

Читать далее

GitOps для AWS CDK

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели5.2K

В какой-то момент в нашей команде стало очевидно: пора тащить всю инфраструктуру в Git — по-взрослому, через GitOps. Kubernetes у нас уже был, ArgoCD тоже. Осталось «дотащить» туда AWS-ресурсы, которые мы описываем с помощью AWS CDK.

Идея казалась простой: есть CDK-код в Git, запускается ArgoCD, всё красиво деплоится в облако. Но реальность оказалась совсем не такой. CDK — это не YAML и даже не Terraform. Это исполняемый код. GitOps — это про декларативность и kubectl apply. CDK с этим не дружит.

Ожидалось, что наверняка есть готовый Kubernetes-оператор, который запускает cdk deploy при изменении кода. Как это уже сделано для Terraform (через ArgoCD Terraform Controller), Pulumi, или хотя бы через ACK. Но после долгого ресерча выяснилось: нет ничего рабочего и production-ready.

Так появилась идея — написать собственный Kubernetes-оператор, который сможет:

- раз в какое-то время (или по коммиту в Git) запускать cdk deploy;
- проверять cdk diff и cdk drift для отслеживания изменений и дрифта;
- удалять CloudFormation-стэк, если ресурс удалили из Git;
- интегрироваться с ArgoCD и Prometheus.

Получился полноценный GitOps-воркфлоу для AWS CDK — без пайплайнов, без ручных cdk deploy, без дрейфующих стэков.

Под катом — расскажу, как мы подошли к проблеме, как устроен Custom Resource CdkTsStack, какие фишки мы добавили (метрики, хуки, IAM-пользователи), и почему наш подход оказался практичнее, чем существующие альтернативы вроде Terraform Operator или Pulumi.

Читать далее

Выделенные серверы + Kubernetes: практическое руководство

Время на прочтение17 мин
Охват и читатели9.4K

Привет, Хабр! Я Максим, инженер по тестированию Selectel. Недавно мы провели технический воркшоп по работе с Kubernetes на выделенных серверах. Под катом — подробный текстовый разбор. Рассмотрим создание кластера через панель управления, деплой приложения, настройку внешнего доступа и подключение облачной базы данных с тестовым запросом прямо из пода.

Читать далее

DNS-хаос, зомби-поды и майнеры в кластере: самые невероятные случаи при работе с Kubernetes

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели9K

Kubernetes — мощный и одновременно сложный инструмент, работа с которым неизбежно порождает… инциденты. И на практике DNS виновата далеко не всегда. Иногда всё ломает слишком длинное имя деплоймента, протухший CA-сертификат или сбой сетевой карты, из-за которого TCP-пакеты просто отбрасываются. В статье вас ждут самые интересные и поучительные инженерные истории с Reddit.

Читать далее

Настраиваем доступ к сервисам и подам Kubernetes в облаке

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели6.6K

Сталкивались ли вы с ситуацией, когда нужно получить доступ к сети подов или сервисов в кластере Kubernetes? Кто-то может возразить, что маппинга портов через port-forward или использования NodePort вполне достаточно, однако часто это не так. Список реальных кейсов велик, рассмотрим несколько для примера:

— разработчикам нужен прямой доступ к сервисам по ClusterIP для дебага;

— используются внешние балансировщики (например, SIP/RTP-прокси для телефонии или антиспам-решения), когда они не могут быть размещены внутри Kubernetes;

— присутствуют аппаратные решения вроде NGFW от именитых производителей.

В тексте мы в первую очередь будем опираться на практику Managed Kubernetes-сервиса Selectel, но он также будет полезен, если у вас свой K8s с CNI Calico.

Читать далее

Новости виртуализации Deckhouse: готовность к продакшену, автоматическая перебалансировка ВМ по узлам и другие фичи

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.5K

За последние два месяца в Deckhouse Virtualization Platform (DVP) вышло пять новых релизов (0.19–0.23). За это время в платформе появилось много важных улучшений, о которых мы расскажем в этом обзоре. Среди них — готовность к продакшену, улучшенная безопасность, автоматическая перебалансировка ВМ по узлам, оптимизация миграции и вложенная виртуализация. Подробности в обзоре.

Читать далее

Как мы внедряли Service Mesh и не утонули в сложностях: реальный кейс Orion soft

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.6K

Артём Еремин, системный инженер Nova Container Platform в Orion soft.

Всем привет! Недавно я выступал на мероприятии СНОВА О КУБЕРЕ и рассказывал о Service Mesh. Тема достойна и поста на Хабре, потому что Service Mesh стал распространенной фишкой, но при этом не самой простой. 

Мы в Orion soft решили внедрить ее в нашу платформу оркестрации Nova Container Platform, и по пути столкнулись с целым рядом «подводных камней»: от выбора самого решения до нюансов настройки MTLS и организации точек входа трафика в наш кластер. В этой статье я расскажу, как мы выбирали реализацию для Service Mesh, почему остановились на Istio, какие вопросы решали и что из этого получилось.

Читать далее

Ближайшие события

Через тернии к звездам: настраиваем сетевую связность Kubernetes на физическом сервере в ЦОД

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.8K

Привет, Хабр! С вами Антон Паус. Я четыре года проработал системным инженером в российском офисе Cisco, а сейчас работаю DevOps-инженером в Cloud.ru — занимаюсь облаком собственной разработки

С 2024 года я веду проект по разработке новой архитектуры кластера виртуализации Evolution IaaS на базе Kubernetes. Раньше мы использовали связку Ansible и Docker, и это отлично работало на существующем масштабе, но с ростом клиентской нагрузки столкнулись с рядом сложностей, что в конечно итоге и сподвигло нас на обновление архитектуры. 

Проект получился довольно объемным и со множеством нюансов и сложностей, о которых я, возможно, напишу в следующих статьях. В этой же хотел остановиться на нюансах сетевого взаимодействия в кластере bare metal Kubernetes — в ходе работы возник ряд сложностей (например, с первоначальной установкой K8s на сервер с несколькими интерфейсами), о решении которых я и расскажу. 

Если развернуть кластер Kubernetes на железе — в ваших обозримых планах, надеюсь, мои изыскания будут полезны. А еще в статье довольно много сетевки, так что приготовьтесь!

Читать дальше

Kubernetes: шестимесячный марафон по прокачке dBrain.cloud

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.3K

За последние полгода наши инженеры проделали значительную работу по развитию и оптимизации платформы dBrain.cloud, ключевым инструментом которой является Kubernetes. В этой статье мы подробно расскажем об изменениях, произошедших в инфраструктуре, о внедрении новых функций и фишках, которые, мы надеемся, будут интересны DevOps-сообществу.

Читать далее

PDB для StatefulSet с minAvailable=100 % и контролируемый rolling-update через Partition

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели826

Привет!

Сегодня мы рассмотрим, как перезапустить полноценный ZooKeeper‑кластер в Kubernetes так, чтобы ни один из узлов не потерял кворум даже на микросекунду. Берём два проверенных инструмента — строгий PodDisruptionBudget с minAvailable: 100% и StatefulSet с updateStrategy.RollingUpdate.partition.

Читать далее

Опыт эксплуатации Service Mesh в Авито

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели3K

Привет, Хабр! Меня зовут Игорь Балюк, совсем недавно я работал платформенным инженером в Авито. В этой статье я рассказываю про Service Mesh и показываю, что это, скорее, не конечная точка, где можно найти «серебряную пулю» от всех проблем, а путь, который, возможно, никогда не закончится: придется постоянно куда-то бежать и что-то дорабатывать. В тексте я также разбираю, как работает Service Mesh в Авито. 

Переходите под кат, будет интересно!

Читать далее

Как перенести данные Persistent Volume из одного Kubernetes кластера в другой с помощью Tuna

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.2K

В этом гайде мы рассмотрим 2 способа как легко перенести данные в Persistent Volume из одного Kubernetes кластера в другой без сложных манипуляций и промежуточных скачиваний с помощью Tuna туннелей. Гайд подойдет для любых типов данных, это может быть Wordpress приложение или каталог с картинками, бэкапами, в общем что угодно.

Читать далее

Как девопсы контейнеризацию с виртуализацией дружили

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.1K

А что, если бы виртуалки вели себя как контейнеры — с миграциями, мониторингом, провижингом томов и GitOps? Мы во «Фланте» так и сделали: совместили Kubernetes с KubeVirt, там-сям допилили и получили решение, которое позволяет запускать виртуальные машины рядом с контейнерами и управляется как обычный кластер Kubernetes.

Привет, Хабр! Я — Олег Сапрыкин, технический директор по инфраструктуре компании «Флант». Сегодня я расскажу, как мы создавали виртуализацию в экосистеме Deckhouse от выбора инструмента для управления ВМ в 2023 году до полноценного продукта, готового к использованию в production весной 2025-го. Подробно опишу, с какими подводными камнями мы столкнулись в процессе эксплуатации и какие доработки потребовались.

Читать далее

Переход с MaaS на Metal³: зачем, почему, что получилось

Время на прочтение5 мин
Охват и читатели1.3K

В этой статье мы подробно расскажем о пути перехода платформы контейнеризации dBrain.cloud с MaaS на Metal³. Основная задача, которую решают оба этих проекта, состоит в установке операционной системы на серверы платформ. Озвучим причины, по которым мы искали альтернативные решения, и объясним, чем Metal³ превосходит MaaS.

Читать далее

Вклад авторов