Обновить
122.83

Kubernetes *

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

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

Как с fio проверить диски на достаточную производительность для etcd

Время на прочтение7 мин
Количество просмотров22K
Прим. перев.: эта статья — итоги мини-исследования, проведенного инженерами IBM Cloud в поисках решения реальной проблемы, связанной с эксплуатацией базы данных etcd. Для нас была актуальна схожая задача, однако ход размышлений и действий авторов может быть интересен и в более широком контексте.



Краткое резюме всей статьи: fio и etcd


Производительность кластера etcd сильно зависит от скорости хранилища, лежащего в его основе. Для контроля за производительностью etcd экспортирует различные метрики Prometheus. Одной из них является wal_fsync_duration_seconds. В документации к etcd говорится, что хранилище можно считать достаточно быстрым, если 99-й процентиль этой метрики не превышает 10 мс…
Читать дальше →

Как эффективнее использовать kubectl: подробное руководство

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

Если вы работаете с Kubernetes, то, вероятно, kubectl — одна из самых используемых вами утилит. А всякий раз, когда вы тратите много времени на работу с определенным инструментом, стоит хорошо его изучить и научиться эффективно использовать.

Команда Kubernetes aaS от Mail.ru перевела статью Даниэля Вейбеля, в которой вы найдете советы и приемы для эффективной работы с kubectl. Также она поможет глубже понять работу Kubernetes.

По словам автора, цель статьи — сделать вашу ежедневную работу с Kubernetes не только более эффективной, но и более приятной!
Читать дальше →

Виртуальное мероприятие для разработчиков

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

Виртуальное мероприятие для разработчиков 17 июня 2020!

Регистрация

Приглашаем Вас принять участие в виртуальном мероприятии для разработчиков врамках Think Digital Summit Moscow!
Читать дальше →

Релиз новой версии плагина DevOpsProdigy KubeGraf для мониторинга kubernetes-кластеров в Grafana

Время на прочтение2 мин
Количество просмотров2.9K
Коллеги, всем привет!

На этой неделе состоялся релиз очередной версии нашего плагина DevOpsProdigy KubeGraf v1.4.0. Он разработан для Grafana и предназначен для мониторинга kubernetes-кластеров и приложений в них.

Итак, что нового в версии 1.4.0:

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

Организация распределенного CI/CD с помощью werf

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


werf — наша Open Source-утилита для сборки и деплоя приложений. Сегодня мы с радостью сообщаем, что werf научилась работать в распределенном режиме, начиная с версии v1.1.10 (доступна в каналах v1.1 alpha, beta, ea и stable). Для его подключения требуется минимум усилий.

Вот некоторые из примечательных особенностей нового режима:
Читать дальше →

DEVOXX UK. Kubernetes в продакшене: Blue/Green deployment, автомасштабирование и автоматизация развертывания. Часть 2

Время на прочтение13 мин
Количество просмотров2.3K
Kubernetes — это отличный инструмент для запуска контейнеров Docker в кластеризованной производственной среде. Однако существуют задачи, которые Kubernetes решить не в состоянии. При частом развертывании в рабочей среде мы нуждаемся в полностью автоматизированном Blue/Green deployment, чтобы избежать простоев в данном процессе, при котором также необходимо обрабатывать внешние HTTP-запросы и выполнять выгрузку SSL. Это требует интеграции с балансировщиком нагрузки, таким как ha-proxy. Другой задачей является полуавтоматическое масштабирование самого кластера Kubernetes при работе в облачной среде, например, частичное уменьшение масштаба кластера в ночное время.

Хотя Kubernetes не обладает этими функциями прямо «из коробки», он предоставляет API, которым можно воспользоваться для решения подобных задач. Инструменты для автоматизированного Blue/Green развертывания и масштабирования кластера Kubernetes были разработаны в рамках проекта Cloud RTI, который создавался на основе open-source.

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

DEVOXX UK. Kubernetes в продакшене: Blue/Green deployment, автомасштабирование и автоматизация развертывания. Часть 1

Время на прочтение13 мин
Количество просмотров3.9K
Kubernetes — это отличный инструмент для запуска контейнеров Docker в кластеризованной производственной среде. Однако существуют задачи, которые Kubernetes решить не в состоянии. При частом развертывании в рабочей среде мы нуждаемся в полностью автоматизированном Blue/Green deployment, чтобы избежать простоев в данном процессе, при котором также необходимо обрабатывать внешние HTTP-запросы и выполнять выгрузку SSL. Это требует интеграции с балансировщиком нагрузки, таким как ha-proxy. Другой задачей является полуавтоматическое масштабирование самого кластера Kubernetes при работе в облачной среде, например, частичное уменьшение масштаба кластера в ночное время.

Хотя Kubernetes не обладает этими функциями прямо «из коробки», он предоставляет API, которым можно воспользоваться для решения подобных задач. Инструменты для автоматизированного Blue/Green развертывания и масштабирования кластера Kubernetes были разработаны в рамках проекта Cloud RTI, который создавался на основе open-source.

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

PuppetConf 2016. Kubernetes для сисадминов. Часть 3

Время на прочтение6 мин
Количество просмотров1.8K
PuppetConf 2016. Kubernetes для сисадминов. Часть 1
PuppetConf 2016. Kubernetes для сисадминов. Часть 2

Мы берем приложение Lobsters и создаем новый образ с новыми требованиями. Сначала вводим команду развертывания $ kubectl apply –f deployments/lobsters.yaml и посылаем приложение в кластер, который должен выполнить обновление rolling update для каждого из имеющихся экземпляров приложения в соответствии с политикой обновлений. Сначала система убеждается в работоспособности каждого экземпляра, а затем уничтожает их в следующем наборе контейнеров.



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

Настройка multitenant кластера Amazon EKS

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

Мы постоянно используем Cloud-native технологии, и запускаем системы в контейнерах на платформе Kubernetes. Эта технология отлично подходит для оркестрации контейнерных нагрузок благодаря гибкости и установке виртуальных машин прямо на железо (bare metal). Когда-то Kubernetes подходил только для простых рабочих нагрузок без сохранения состояния, теперь там стало возможным хранить базы данных, обучать машины и развертывать сложные приложения.
Читать дальше →

PuppetConf 2016. Kubernetes для сисадминов. Часть 2

Время на прочтение6 мин
Количество просмотров2.7K
PuppetConf 2016. Kubernetes для сисадминов. Часть 1

Установите лимит использования ресурсов. С помощью простой математики можно рассчитать, сколько копий приложения вы сможете запустить – если одной копии нужен 1 ГБ RAM, то имея 10 ГБ памяти, можно запустить 10 копий. За этим не нужно будет следить, потому что я знаю, что ядро системы просто станет исполнять обусловленный контракт. Этот контракт, или соглашение между вами и системой, очень важен, потому что при его наличии все инструменты работают намного лучше. Таким образом мы привносим в систему дисциплину исполнения.



Так вот, планировщик запустит это только в том случае, если на каждую из реплик достанется по 1 Гб свободной памяти. Если же памяти не хватает, процесс не запустится. Итак, я ввожу команду kubectl create, и после ее выполнения будет создан контейнер mysql.



Здесь имеется один нюанс, связанный со stateful-системами – у вас есть несколько вариантов выбора. Я выделил фрагмент кода, в котором указал, что хочу использовать PersistentDisk моего облачного провайдера.

Изучаем Kubernetes: базовая программа 6-8 июля, продвинутая 13-15 июля

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

В июле пройдет онлайн-интенсив по Kubernetes.


TL;DR
Мы в мае провели онлайн-интенсив. Формат работает. Мы получили хороший фидбек.
Онлайн-интенсивы удобнее проводить в два раза чаще, собирая на каждый в два раза меньше людей.


Мы наладили систему фидбека и улучшений на ходу. Ценовая политика: «Меги за 30» больше не будет, но цены на интенсивы будут ниже, чем до коронакризиса.



Обо всем подробнее

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

Представляем k8s-image-availability-exporter для обнаружения пропавших образов в Kubernetes

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


Рады представить свой новый Open Source-проект. На этот раз мы сделали совсем небольшую, казалось бы, утилиту, но столь полезную буквально для любой инсталляции Kubernetes. В чем же её суть? K8s-image-availability-exporter — это Prometheus exporter, позволяющий проактивно предупредить пользователя об образах, которые прописаны в объектах Kubernetes (например, поле image в Deployment), но отсутствуют в реестре контейнеров (Docker Registry и т.п.).
Читать дальше →

PuppetConf 2016. Kubernetes для сисадминов. Часть 1

Время на прочтение13 мин
Количество просмотров6.7K
Я системный администратор, занимаюсь компьютерами, и сегодня мы поговорим о Kubernetes. Я постараюсь глубже окунуться в тему, рассмотрев, какие проблемы сисадмин может решить с помощью этого приложения, и также затрону некоторые моменты эксплуатации Puppet, которая вроде как вписалась в этот мир с помощью нового набора абстракций для работы приложения.
Пять или шесть лет назад Луис Андре Барросо и Урс Хёзл в статье «Дата-центр как компьютер» высказали мысль, что мы должны воспринимать центр обработки данных как один массивный компьютер. Нужно абстрагироваться от того, что дата-центр состоит из отдельных машин, и считать его одной логической сущностью. Как только вы попытаетесь использовать эту идею на практике, то сможете применять к дата-центрам принципы построения распределенных систем и распределенных вычислений.



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

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

Состояние и производительность решений для постоянного хранения данных в Kubernetes

Время на прочтение11 мин
Количество просмотров13K
Прим. перев.: хотя этот обзор не претендует на статус тщательно проработанного технического сравнения существующих решений для постоянного хранения данных в Kubernetes, он может стать хорошей отправной точкой для администраторов, которым актуален данный вопрос. Наибольшего внимания здесь удостоилось решение Piraeus, знакомство с которым пойдет на пользу не только любителям Linstor, но и тем, кто об этих проектах ещё не слышал.



Это ненаучный обзор решений для хранения данных для Kubernetes. Постановка задачи: требуется возможность создания Persistent Volume на дисках узла, данные которого будут сохранны в случае повреждения или перезапуска узла.

Мотивация для проведения этого сравнения — потребность миграции серверного парка компании со множества выделенных bare metal-серверов в кластер Kubernetes.
Читать дальше →

Лучшие практики Kubernetes. Обновление кластера Kubernetes с нулевым временем простоя

Время на прочтение5 мин
Количество просмотров4.4K
Лучшие практики Kubernetes. Создание небольших контейнеров
Лучшие практики Kubernetes. Организация Kubernetes с пространством имен
Лучшие практики Kubernetes. Проверка жизнеспособности Kubernetes с помощью тестов Readiness и Liveness
Лучшие практики Kubernetes. Настройка запросов и лимитов ресурсов
Лучшие практики Kubernetes. Корректное отключение Terminate
Лучшие практики Kubernetes. Маппинг внешних сервисов

Все знают, насколько хорошо поддерживать ваши приложения в актуальном состоянии. Kubernetes и Docker могут сделать процесс обновления намного проще, так что вы сможете создать новый контейнер с обновленными зависимостями и легко его развернуть. Кроме обновления зависимости приложений, Kubernetes постоянно выполняет обновление функций и политик безопасности.
Таким образом, базовые узлы и инфраструктура Kubernetes должны находится в актуальном состоянии. В этой серии мы узнаем, как Google Kubernetes Engine может без проблем обновить кластер Kubernetes.

Лучшие практики Kubernetes. Маппинг внешних сервисов

Время на прочтение4 мин
Количество просмотров5.4K
Лучшие практики Kubernetes. Создание небольших контейнеров
Лучшие практики Kubernetes. Организация Kubernetes с пространством имен
Лучшие практики Kubernetes. Проверка жизнеспособности Kubernetes с помощью тестов Readiness и Liveness
Лучшие практики Kubernetes. Настройка запросов и лимитов ресурсов
Лучшие практики Kubernetes. Корректное отключение Terminate

Если вы похожи на большинство людей, то, скорее всего используете ресурсы, функционирующие за пределами вашего кластера. Возможно, вы используете API Taleo для отправки текстовых сообщений или анализируете изображения с помощью API Google Cloud Vision.

Лучшие практики Kubernetes. Корректное отключение Terminate

Время на прочтение4 мин
Количество просмотров5.5K
Лучшие практики Kubernetes. Создание небольших контейнеров
Лучшие практики Kubernetes. Организация Kubernetes с пространством имен
Лучшие практики Kubernetes. Проверка жизнеспособности Kubernetes с помощью тестов Readiness и Liveness
Лучшие практики Kubernetes. Настройка запросов и лимитов ресурсов



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

Наш опыт работы с данными в etcd Kubernetes-кластера напрямую (без K8s API)

Время на прочтение9 мин
Количество просмотров8K
Все чаще к нам обращаются клиенты с просьбой обеспечить доступ в Kubernetes-кластер для возможности обращения к сервисам внутри кластера: чтобы можно было напрямую подключиться к какой-то базе данных или сервису, для связи локального приложения с приложениями внутри кластера…



Например, возникает потребность подключиться со своей локальной машины к сервису memcached.staging.svc.cluster.local. Мы предоставляем такую возможность с помощью VPN внутри кластера, к которому подключается клиент. Для этого анонсируем подсети pod'ов, сервисов и push'им кластерные DNS клиенту. Таким образом, когда клиент пытается подключиться к сервису memcached.staging.svc.cluster.local, запрос уходит в DNS кластера и в ответ получает адрес данного сервиса из сервисной сети кластера или адрес pod'а.

K8s-кластеры мы настраиваем с помощью kubeadm, где по умолчанию сервисная подсеть — 192.168.0.0/16, а сеть pod'ов — 10.244.0.0/16. Обычно всё хорошо работает, но есть пара моментов:
Читать дальше →

Долгий DNS resolve в Kubernetes

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

Эта статья посвящена проблемам работы DNS в Kubernetes, с которыми столкнулась наша команда. Как оказалось, иногда проблема лежит гораздо глубже, чем кажется изначально.


Вступление


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


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


11 часов, начало рабочего дня. В системе мониторинга не хватает части сообщений от одного из приложений.

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

РИТ++ 2020: консультации с инженерами Авито в Зуме

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

Привет, Хабр! 25 и 26 мая будет РИТ++. Это большая онлайн-конференция для всех, кто делает интернет. В обычных условиях мы бы встретились на стенде Авито в зале мероприятия, но 2020 перевернул всё с ног на голову. Так что общение переносится в Зум, где 11 наших инженеров из разных команд ответят на вопросы про базы данных, перформанс, мониторинг, микросервисную архитектуру и многое другое.


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


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

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