Обновить
111.82

Kubernetes *

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

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

Запросы и лимиты в Kubernetes: разбираемся в деталях

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров14K

Управление ресурсами в Kubernetes немного напоминает зефирный тест, который иногда выходит из-под контроля. Если тщательно не лимитировать, сколько ресурсов может потреблять контейнер, он пойдёт вразнос, примерно как малыш, способный слопать большую пачку Skittles за один присест.

С другой стороны, если вы постоянно лишаете контейнер минимального объёма ресурсов, который нужен ему для корректной работы, то словно постоянно не подпускаете ваших детей к сладостям. Контейнер будет влачить жалкое существование и работать вполсилы.

Вот почему настолько важно правильно настроить в Kubernetes лимиты и работу с запросами. Понимая, какова роль запросов и лимитов при управлении ресурсами и производительностью в Kubernetes, а также умея настраивать и/или задавать запросы и лимиты, вы гарантируете, что на обработку каждой рабочей нагрузки будет выделено ровно столько ресурсов, сколько нужно — ни больше, ни меньше.

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

Читать далее

Сетевые плагины (CNI) в Kubernetes

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров13K

Сеть Kubernetes — это сложная и увлекательная тема, наполненная множеством подвижных частей. Одним из ключевых компонентов, обеспечивающих сетевую связность и взаимодействие различных элементов кластера, является CNI (Container Networking Interface).

CNI  - это спецификация, разработанная CNCF (Cloud Native Computing Foundation) для стандартизации процесса подключения сетевых интерфейсов к контейнерам. CNI обеспечивает гибкость и адаптивность сетевой инфраструктуры, позволяя интегрировать различные сетевые решения в Kubernetes.

Давайте подробнее разберем, что такое Container Network Interface?

Читать далее

Продираемся сквозь сети в Kubernetes: Load-Balance, BGP, IPVS и все такое прочее

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

Привет, Хабр! Мы в команде Nova Container Platform сделали перевод статьи для тех, кто хочет разобраться, как строить сети в Kubernetes. Делюсь им, надеюсь, вам будет полезно.

В мире Kubernetes мы каждый день слышим, как ipvs сравнивают с iptables, или, скажем, pureLB с metalLB, или же виртуальную топологию (overlay) с физической (underlay), или Nodeport с Loadbalance, и т.д. Сейчас я вам все растолкую.

Читать далее

Как мы KaaS запускали в Облаке Рег.ру

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.8K

Привет, Хабр! 

Сегодня с вами Игорь Шишкин, тимлид команды облачной разработки в «Рег.ру», и я расскажу о том, как и зачем мы запускаем  Kubernetes as a Service (KaaS).  

Ранее мы уже писали про устройство сервиса DBaaS, а теперь расскажем про следующий сервис в линейке платформенных сервисов — KaaS.

Читать далее

Погружение в облака: K8S по следам Ænix с gohost. Часть 1. Установка Kubernetes-кластера под управлением Cozystack

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

Привет! Меня зовут Владислав Карабасов, я работаю в компании gohost в Казахстане. Ранее я более 20 лет проработал в университете, возглавляя Центр информационных технологий и телекоммуникаций.

В gohost.kz я занялся развитием Kubernetes as a Service. В процессе работы я познакомился с платформой Cozystack на базе Talos Linux и решил развернуть Kubernetes-кластер с её помощью. Cozystack привлекла меня следующими особенностями:

— Поддержка развёртывания на железе (Bare Metal).

— Высокий уровень безопасности Talos Linux.

— Активное участие разработчиков в русскоязычном сообществе Kubernetes.

Делюсь опытом установки и настройки кластера на платформе Cozystack. Надеюсь, это будет полезно!

Читать далее

Как использовать blue-green-деплой: руководство по выкату одного и нескольких приложений

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров11K

В статье я задеплою приложение в blue-green, а также покажу, как работает смена между blue и green на практике. Cначала рассмотрим реализацию деплоя приложения в blue-green-стратегии, а затем попробуем werf bundle для деплоя нескольких приложений из одного репозитория. Будем деплоить с помощью werf, все ресурсы описывать как Helm-шаблоны, а для развёртывания использовать GitLab.

Читать далее

Оптимизация в Python c Kubernetes: кэширование и CDN

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров763

Привет, Хабр!

Очень важно не только писать хороший код, но и использовать все возможности инфраструктуры на максимум. Именно с этой целью в этой статье рассмотрим, как правильно использовать инструменты кэширования внутри Kubernetes и как настроить CDN для максимума производительности Python-приложения.

Читать далее

Установка Sentry в Kubernetes, отловы exception на бекенде, в браузере, на Android

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.4K

В этой статье поговорим о Sentry — инструменте для сбора exception, который помогает разработчикам быстро обнаруживать и устранять проблемы, сокращая время выхода новых релизов и повышая удовлетворенность пользователей.

Читать далее

Поднимаем динамические окружения (фича-стенды) для stateless- и stateful-сервисов

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

На связи Игорь Латкин, управляющий партнер и системный архитектор в KTS

Мы на своём опыте разобрались в развертывании stateless- и stateful-сервисов, и теперь хотим поделиться с вами. Мы в KTS не раз создавали подобные инфраструктуры, перепробовали разные решения и выясняли, как построить эффективные процессы.

Сегодня мы поговорим о динамических окружениях (фича-стендах) для stateless- и stateful-сервисов, обсудим особенности и проблемы, которые могут возникнуть и возникали у нас.

Читать далее

Как объединить кластеры Kubernetes без даунтайма: пошаговая инструкция

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров6.4K

Однажды один мудрый DevOps сказал мне: «DevOps’ы — это люди, способные сделать всё, лишь бы не делать ничего». Привет, Хабр, я Алексей Подольский, лидер направления инструментов безопасной разработки в Cloud.ru. Сегодня я расскажу, как сделать жизнь чуть легче, если кластеров кубера в проектах развелось столько, что за всеми не уследить. Будем объединять кластеры в один, да так, чтобы падали затраты, а не прод. Будет полезно админам, DevOps’ам, прикладным архитекторам, и всем, кто работает с Kubernetes. Поехали!

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

Продвинутые сетевые функции Kubernetes

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

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

Читать далее

Высокая доступность в Kubernetes

Время на прочтение9 мин
Количество просмотров6.1K

Обсудили высокую доступность в k8s: эксперт Слёрма Кирилл Борисов — SRE, инцидент-менеджер и спикер конференций Highload++, Devops, DevOops, ProITFest — рассказал про использование Affinity и Anti-Affinity, Tolerations, PodDiscruption Budget и Horizontal Pod Autoscaler.

Читать далее

Как использовать S3-хранилище в Kubernetes: руководство с примерами

Время на прочтение11 мин
Количество просмотров11K

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

Привет, Хабр! Меня зовут Филипп, я DevOps-инженер в Selectel. В своей обзорной статье хочу разобрать, какие есть решения для работы с объектным хранилищем из K8s. Соберу тестовый стенд из кластера Managed Kubernetes и покажу, как установить и настроить нужные компоненты через Terraform. Начинаем!
Читать дальше →

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

CI/CD Kubernetes платформа Gitorion. Highly Available кластер Kubernetes

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.1K

Привет, всем! Мы продолжаем наш цикл статей про CI/CD Kubernetes платформу Gitorion. На очереди освещение шагов по построению платформы в Highly Available исполнении. Поскольку все компоненты платформы и пользовательские приложения запускаются в Kubernetes, начнем c построения Highly Avalable кластера Kubernetes. В статье разберем особенности штатной базы данных Kubernetes etcd, не позволившие избежать избыточности. Рассмотрим способ заменить etcd на SQL-базу с помощью Kine от проекта K3S и построить кластер Kubernetes высокой доступности на два дата центра, способный пережить падение любого из них.

Читать далее

Kubernetes 1.31. Обзор обновления

Время на прочтение5 мин
Количество просмотров4.4K

В этой статье описываются запланированные изменения для релиза Kubernetes v1.31, о которых вам следует знать для дальнейшего обслуживания вашей среды Kubernetes. Приведенная ниже информация основана на текущем статусе релиза v1.31.

Читать далее

Как мы управляем секретами в Банки.ру: Vault HashiCorp и мечта об одной безопасной кнопке

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

Привет! Меня зовут Лев, я руководитель интеграционной разработки в финансовом маркетплейсе Банки.ру.

Больше года назад мы начали переход на микросервисную архитектуру. Секретов становилось всё больше: пароли, токены, сертификаты, ключи. А управлять ими было всё сложнее. Количество команд давно перевалило за несколько десятков, а интеграций с партнерами, которые также защищены секретами, — за сотню.

Перед нами появилась задача выстроить удобную и безопасную структуру хранения и управления секретами. В этой статье поделюсь нашим опытом и расскажу:

1. В чем заключалась проблема в управлении секретами, как мы её решили и как могли бы улучшить этот процесс.
2. Какие способы хранения секретов существуют и как их можно интегрировать.
3. Как можно реализовать хранение через Vault.
4. Что такое политики доступа и как они применяются к структурам секретов.
5. Варианты реализации, которые наилучшим образом подходят для нашей конкретной ситуации.

Читать далее

Kubernetes становится вендоронезависимым после изменения 1,5 млн. строк кода

Время на прочтение5 мин
Количество просмотров14K

В июле 2024 вышла версия Kubernetes 1.31, в которой были окончательно устранены встроенные интеграции облачных провайдеров.

Начиная с версии Kubernetes v1.7, проект Kubernetes преследовал амбициозную цель удаления встроенных интеграций облачных провайдеров. Хотя эти интеграции сыграли важную роль в раннем развитии и росте Kubernetes, их удаление было обусловлено двумя ключевыми факторами: растущей сложностью поддержания собственной поддержки для каждого облачного провайдера в миллионах строк кода Go и желанием сделать Kubernetes по-настоящему независимой от поставщика платформой.

После многих релизов, все интеграции облачных провайдеров были успешно перенесены из основного репозитория Kubernetes во внешние плагины. В дополнение к достижению первоначальных целей, удалось значительно оптимизировать Kubernetes, удалив около 1,5 миллионов строк кода и уменьшив двоичные размеры основных компонентов примерно на 40%.

Эта миграция была сложной и длительной из-за многочисленных затронутых компонентов и критических путей кода, которые полагались на встроенные интеграции для пяти первоначальных поставщиков облачных услуг: Google Cloud, AWS, Azure, OpenStack и vSphere. Для успешного завершения этой миграции пришлось построить четыре новые подсистемы с нуля:

Читать далее

Переадресация портов в Kubernetes: команда kubectl port-forward

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

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

Переадресация портов — это процесс перенаправления сетевого трафика с одного порта на другой, что позволяет получать доступ к внутренним сервисам кластера Kubernetes из внешней сети.

Команда kubectl port-forward позволяет перенаправлять трафик с локального компьютера на определенный порт внутри пода

Рассмотрим подробней.

Читать далее

Как разработать онлайновый компилятор кода при помощи Java и Docker

Время на прочтение12 мин
Количество просмотров3.8K
image


Вы когда-нибудь задумывались, как устроены такие платформы как Codeforces и LeetCode? Как именно они компилируют и выполняют код, поступающий от множества пользователей и проверяют его в тестовых кейсах? Как определяют эффективность алгоритмов?
В этой статье мы подробно разберём, как выстроить высокоэффективную платформу для решения задач.

Исходный код к этой статье выложен на Github в этом репозитории
Читать дальше →

Как запускать WebAssembly-приложения в Kubernetes с помощью Deckhouse

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.7K

Запускать Wasm-приложения в ванильном Kubernetes затруднительно, так как есть неудобства в настройке сред выполнения на рабочих узлах. Штатных средств недостаточно, чтобы легко конфигурировать узлы. Конечно, можно сконфигурировать один узел руками. Но если нужно обкатать различные рантаймы или большое количество приложений, то хочется максимально просто масштабировать кластер и управлять узлами декларативно. Поэтому я решил запустить Wasm-приложение в Deckhouse Kubernetes Platform (DKP). Эта платформа упрощает развёртывание и управление кластерами Kubernetes.

В этой статье я покажу, как запускать Wasm-приложения в Kubernetes с использованием DKP. Мы настроим окружение, установим необходимые компоненты и запустим простой WebAssembly-модуль.

Читать далее

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