Все потоки
Поиск
Написать публикацию
Обновить
81.94

Kubernetes *

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

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

7 недостающих факторов в подходе 12 Factor App

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


Прим. перев.: Тот восторг, что испытали наши тимлиды, увидев в блоге IBM Cloud этот материал — своеобразное «расширение» легендарного Twelve-Factor App, — говорит сам за себя. Поднятые автором вопросы не просто на слуху, а по-настоящему жизненны, т.е. актуальны в повседневной жизни. Их понимание полезно не только для DevOps-инженеров, но и разработчиков, создающих современные приложения, запускаемые в Kubernetes.

Известная методология «12 factor application» представляет собой свод четко определенных правил для разработки микросервисов. Они широко используются для запуска, масштабирования и деплоя приложений. В облачной платформе IBM Cloud Private мы следуем тем же 12 принципам при разработке контейнеризированных приложений. В статье «Kubernetes & 12-factor apps» обсуждается специфика применения этих 12 факторов (они поддерживаются моделью оркестровки контейнеров Kubernetes).

Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:
Читать дальше →

Сервисная сеть, «Плоскость данных» и «Плоскости управления» (Service mesh data plane vs. control plane)

Время на прочтение8 мин
Количество просмотров6.1K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Service mesh data plane vs control plane» автора Matt Klein.



В этот раз «захотелось и перевелось» описание обоих компонентов service mesh, data plane и control plane. Это описание мне показалось самым понятным и интересным, а главное подводящим к пониманию «А нужно ли оно вообще?».

Поскольку идея «Сервисной сети (Service mesh)» становится все более популярной в течение последних двух лет (Оригинальная статья от 10 октября 2017), а число участников в пространстве возросло, я увидел соразмерный рост путаницы среди всего технического сообщества в отношении того, как сравнивать и противопоставлять разные решения.
Читать дальше →

Беспростойная миграция MongoDB в Kubernetes

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


Эта статья продолжает наш недавний материал про миграцию RabbitMQ и посвящена MongoDB. Поскольку мы обслуживаем множество кластеров Kubernetes и MongoDB, пришли к естественной необходимости мигрировать данные из одной инсталляции в другую и делать это без простоя. Основные сценарии прежние: перенос MongoDB из виртуального/железного сервера в Kubernetes или же перенос MongoDB в рамках одного кластера Kubernetes (из одного пространства имён в другое).
Читать дальше →

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

Время на прочтение15 мин
Количество просмотров7K
Суть рассказа о самом популярном пакетном менеджере для Kubernetes можно было бы изобразить с помощью эмоджи:

  • коробка — это Helm (это самое подходящее, что есть в последнем релизе Emoji);
  • замок — безопасность;
  • человечек — решение проблемы.



На самом же деле, все будет немножечко сложнее, и рассказ полон технических подробностей о том, как сделать Helm безопасным.

  • Кратко, что такое Helm, если вы не знали или забыли. Какие проблемы он решает и где находится в экосистеме.
  • Рассмотрим архитектуру Helm. Ни один разговор о безопасности и о том, как сделать инструмент или решение более безопасным, не может обойтись без понимания архитектуры компонента.
  • Обсудим компоненты Helm.
  • Самый животрепещущий вопрос — будущее — новая версия Helm 3. 

Все в этой статье относится к Helm 2. Эта версия сейчас находится в продакшене и, скорее всего, именно его вы сейчас используете, и именно в нем есть угрозы безопасности.

Kafka на Kubernetes — это хорошо?

Время на прочтение7 мин
Количество просмотров24K
Приветствуем вас, Хабр!

В свое время мы первыми вывели на российский рынок тему Kafka и продолжаем следить за ее развитием. В частности, нам показалась интересной тема взаимодействия Kafka и Kubernetes. Обзорная (и довольно осторожная) статья на эту тему выходила в блоге компании Confluent еще в октябре прошлого года под авторством Гвен Шапиры. Сегодня же мы хотим обратить ваше внимание на более свежую, апрельскую статью Йоханна Гайгера (Johann Gyger), который, хотя и не обошелся без вопросительного знака в названии, рассматривает тему в более предметном ключе, сопровождая текст интересными ссылками. Простите нам пожалуйста вольный перевод «chaos monkey», если сможете!

image

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

5 лучших дистрибутивов Kubernetes

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


Kubernetes (K8s) — это мощная платформа, которая за последние пять лет кардинально изменила методы работы с программным обеспечением. Она пользуется активным спросом, и поэтому некоторые компании стали предлагать Kubernetes-as-a-service. Cloud4Y предлагает познакомиться с наиболее интересными дистрибутивами K8s.

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

werf — наш инструмент для CI/CD в Kubernetes (обзор и видео доклада)

Время на прочтение11 мин
Количество просмотров26K
27 мая в главном зале конференции DevOpsConf 2019, проходящей в рамках фестиваля РИТ++ 2019, в рамках секции «Непрерывная поставка», прозвучал доклад «werf — наш инструмент для CI/CD в Kubernetes». В нём рассказывается о тех проблемах и вызовах, с которыми сталкивается каждый при деплое в Kubernetes, а также о нюансах, которые могут быть заметны не сразу. Разбирая возможные пути решения, мы показываем, как это реализовано в Open Source-инструменте werf.

С момента выступления наша утилита (ранее известная как dapp) преодолела исторический рубеж в 1000 звёзд на GitHub — мы надеемся, что растущее сообщество её пользователей упростит жизнь многим DevOps-инженерам.



Итак, представляем видео с докладом (~47 минут, гораздо информативнее статьи) и основную выжимку из него в текстовом виде. Поехали!

Как приоритеты pod'ов в Kubernetes стали причиной простоя в Grafana Labs

Время на прочтение5 мин
Количество просмотров8.5K
Прим. перев.: Представляем вашему вниманию технические подробности о причинах недавнего простоя в работе облачного сервиса, обслуживаемого создателями Grafana. Это классический пример того, как новая и, казалось бы, исключительно полезная возможность, призванная улучшить качество инфраструктуры… может навредить, если не предусмотреть многочисленные нюансы её применения в реалиях production. Замечательно, когда появляются такие материалы, позволяющие учиться не только на своих ошибках. Подробности — в переводе этого текста от вице-президента по продукту из Grafana Labs.



В пятницу, 19 июля, сервис Hosted Prometheus в Grafana Cloud перестал функционировать примерно на 30 минут. Приношу извинения всем клиентам, пострадавшим от сбоя. Наша задача — предоставлять нужные инструменты для мониторинга, и мы понимаем, что их недоступность усложняет вашу жизнь. Мы крайне серьезно относимся к этому инциденту. В этой заметке объясняется, что произошло, как мы на это отреагировали и что делаем для того, чтобы подобное больше не повторялось.
Читать дальше →

JUnit в GitLab CI с Kubernetes

Время на прочтение6 мин
Количество просмотров8.9K
Несмотря на то, что все прекрасно знают, что тестировать свой софт важно и нужно, а многие давно делают это автоматически, на просторах Хабра не нашлось ни одного рецепта по настройке связки таких популярных в этой нише продуктов, как (любимый нами) GitLab и JUnit. Восполним этот пробел!



Вводные


Для начала обозначу контекст:

  • Так как все наши приложения работают в Kubernetes, будет рассмотрен запуск тестов в соответствующей инфраструктуре.
  • Для сборки и деплоя мы используем werf (в смысле инфраструктурных компонентов это также автоматически означает, что задействован Helm).
  • В детали непосредственного создания тестов вдаваться не буду: в нашем случае клиент пишет тесты сам, а мы лишь обеспечиваем их запуск (и наличие соответствующего отчета в merge request'е).
Читать дальше →

Kubernetes-приключение Dailymotion: создание инфраструктуры в облаках + on-premises

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


Прим. перев.: Dailymotion — один из крупнейших в мире сервисов хостинга видео и потому заметный пользователь Kubernetes. В этом материале системный архитектор David Donchez делится итогами создания production-платформы компании на базе K8s, которая начиналась с облачной инсталляции в GKE и закончилась как гибридное решение, что позволило добиться лучшего времени реакции и сэкономить на инфраструктурных затратах.

Принимая решение о перестройке основного API Dailymotion три года назад, мы хотели разработать более эффективный способ размещения приложений и облегчить процессы в разработке и production. Для этой цели мы решили использовать платформу оркестрации контейнеров и естественным образом выбрали Kubernetes.

Почему стоит создавать собственную платформу на базе Kubernetes?
Читать дальше →

Контейнер – на конвейер: CRI-O теперь по умолчанию в OpenShift Container Platform 4

Время на прочтение9 мин
Количество просмотров4.9K
Платформа Red Hat OpenShift Container Platform 4 позволяет поставить на поток создание хостов для развертывания контейнеров, в том числе в инфраструктуре поставщиков облачных сервисов, на платформах виртуализации или в bare-metal системах. Чтобы создать в полном смысле облачную платформу, нам пришлось взять под жесткий контроль все применяемые элементы и таким образом повысить надежность сложного процесса автоматизации.



Очевидным решением стало использование в качестве стандарта Red Hat Enterprise Linux CoreOS (разновидности Red Hat Enterprise Linux) и CRI-O, и вот почему…
Читать дальше →

Kubernetes Operator на Python без фреймворков и SDK

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


Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как:

  1. Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK.
  2. На Go написаны такие «перевернувшие игру» приложения, как Docker и Kubernetes. Писать свой оператор на Go — говорить с экосистемой на одном языке.
  3. Высокая производительность приложений на Go и простые инструменты для работы с concurrency «из коробки».

NB: Кстати, как написать свой оператор на Go, мы уже описывали в одном из наших переводов зарубежных авторов.

Но что, если изучать Go вам мешает отсутствие времени или, банально, мотивации? В статье приведен пример того, как можно написать добротный оператор, используя один из самых популярных языков, который знает практически каждый DevOps-инженер, — Python.
Читать дальше →

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

Время на прочтение8 мин
Количество просмотров19K
27 апреля на конференции Стачка-2019, в рамках секции «DevOps», прозвучал доклад «Автомасштабирование и управление ресурсами в Kubernetes». В нём рассказывается о том, как с помощью K8s обеспечить высокую доступность приложений и гарантировать их максимальную производительность.



По традиции рады представить видео с докладом (44 минуты, гораздо информативнее статьи) и основную выжимку в текстовом виде. Поехали!
Читать дальше →

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

Слёрм — простой способ ворваться в тему по Kubernetes

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

В апреле ко мне постучались организаторы Слёрм — курсов по Kubernetes — потестировать и рассказать своё впечатление:
Дмитрий, Слёрм — это трехдневный интенсив по Kubernetes, плотное учебное мероприятие. Вряд ли вы сможете о нем написать, если просто посидите два часа на первой лекции. Вы готовы полноценно участвовать?
Перед слёрмом надо было пройти подготовительные online-курсы по ansible, docker и ceph.
Затем в репах взять код и точные инструкции, по которым уже на лекциях проходить каждую командную строчку за строчкой с ведущими.
— Подтверждаю, что готов полноценно участвовать в обоих курсах.
И после этого обеспечена напряженная работа на 6 дней (базовый Слёрм и МегаСлёрм) в аудитории, битком набитой сисадминами.

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

Garden v0.10.0: Вашему ноутбуку не нужен Kubernetes

Время на прочтение4 мин
Количество просмотров11K
Прим. перев.: С Kubernetes-энтузиастами из проекта Garden мы познакомились на недавнем мероприятии KubeCon Europe 2019, где они произвели на нас приятное впечатление. Этот их материал, написанный на актуальную техническую тему и с заметным чувством юмора, — наглядное тому подтверждение, а посему мы решили его перевести.

Он рассказывает о главном (одноименном) продукте компании, идея которого — автоматизация рабочих процессов и упрощение разработки приложений в Kubernetes. Для этого утилита позволяет легко (буквально одной командой) разворачивать в dev-кластере новые изменения, сделанные в коде, а также предоставляет разделяемые ресурсы/кэши для ускорения сборки и тестирования кода командой. Две недели назад у Garden состоялся релиз 0.10.0, в котором стало возможным использовать не только локальный Kubernetes-кластер, но и удаленный: именно этому событию и посвящена данная статья.


Меньше всего я люблю работать с Kubernetes на своем ноутбуке. «Кормчий» поглощает его процессор и аккумулятор, заставляет кулеры вращаться без остановки и сложен в обслуживании.


Фотография со стока в тему для пущего эффекта
Читать дальше →

Что такое GitOps [по версии Weaveworks]?

Время на прочтение13 мин
Количество просмотров37K
Прим. перев.: После недавней публикации материала о методах pull и push в GitOps мы увидели интерес к этой модели в целом, однако русскоязычных публикаций на эту тему оказалось совсем мало (на хабре их попросту нет). Посему рады предложить вашему вниманию перевод другой статьи — пусть и уже почти годичной давности! — от компании Weaveworks, глава которой придумал термин «GitOps». В тексте поясняется суть подхода и ключевые отличия от уже существующих.



Год назад мы опубликовали введение в GitOps. Тогда мы рассказали, как команда Weaveworks запустила SaaS, целиком основанную на Kubernetes, и разработала набор предписывающих лучших практик для развертывания, управления и мониторинга в среде cloud native.
Читать дальше →

Погружение в Jetpack Compose

Время на прочтение7 мин
Количество просмотров9.9K
Всем привет. Перед уходом на выходные спешим поделиться с вами еще одним переводом, подготовленным специально для студентов курса «Android-разработчик. Продвинутый курс».



Пробуем новый UI-фреймворк для Android-приложений


В течение последних нескольких лет, участвуя во многих мобильных проектах, мне приходилось использовать различные технологии, например, такие как Android, ReactNative и Flutter. Переключение с ReactNative обратно на классический Android вызвало у меня смешанные чувства. Возвращение к Kotlin прошло хорошо, но я очень скучал по UI-фреймворку React. Небольшие повторно используемые компоненты, с помощью которых создается пользовательский интерфейс, великолепны и обеспечивают большую гибкость и скорость разработки.
Читать дальше →

Горизонтальное автомасштабирование подов Kubernetes и Prometheus для высокой доступности и работоспособности инфрастр-ры

Время на прочтение7 мин
Количество просмотров19K
Салют, хабровчане! Перевод следующей статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes», занятия по которому стартуют уже завтра. Начнем.



Автомасштабирование в Kubernetes


Автомасштабирование позволяет автоматически увеличивать и уменьшать рабочие нагрузки в зависимости от использования ресурсов.

У автомасштабирования в Kubernetes два измерения:

  • автомасштабирование кластера (Cluster Autoscaler), которое отвечает за масштабирование узлов;
  • горизонтальное автомасштабирование подов (Horizontal Pod Autoscaler, HPA), которое автоматически масштабирует количество подов в развертывании или наборе реплик.

Автомасштабирование кластера можно использовать в сочетании с горизонтальным автомасштабированием подов для динамического регулирования вычислительных ресурсов и степени параллелизма системы, необходимых для соблюдения соглашений об уровне обслуживания (SLA).
Читать дальше →

Уменьшение размера docker образа с spring boot приложением

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

Добрый день.


Недавно передо мной встала задача запуска spring boot 2 приложения в kubernetes кластере используя docker образ. Эта проблема не является новой, достаточно быстро я нашел примеры в гугле и запаковал свое приложение. Я был очень удивлен не найдя alpine образ для jdk11 и надеялся что slim будет достаточно небольшим, но момент отправки образа на docker registry я обратил внимание что его размер составлял почти 422 мегабайт. Под катом описание того как я уменьшил docker образ с моим spring boot и java 11 до 144 мегабайт.


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

Что мы знаем о микросервисах

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

Привет! Меня зовут Вадим Мадисон, я руковожу разработкой System Platform Авито. О том, как мы в компании переходим с монолитной архитектуры на микросервисную, было сказано не раз. Пора поделиться тем, как мы преобразовали свою инфраструктуру, чтобы извлечь из микросервисов максимум пользы и не дать себе в них потеряться. Как нам здесь помогает PaaS, как мы упростили деплой и свели создание микросервиса к одному клику — читайте дальше. Не всё, о чём я пишу ниже, в Авито реализовано в полной мере, часть — то, как мы развиваем нашу платформу.


(А ещё в конце этой статьи я расскажу о возможности попасть на трехдневный семинар от эксперта по микросервисной архитектуре Криса Ричардсона).


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

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