Рубрика «devops» - 77

Мониторинг ping'ов между узлами Kubernetes — наш рецепт - 1

Нередко при диагностике проблем в кластере Kubernetes мы замечаем, что иногда моросит* один из узлов кластера и, конечно же, происходит это редко и странно. Так мы пришли к необходимости в инструменте, который бы делал ping с каждого узла на каждый узел и отдавал результаты своей работы в виде метрик Prometheus. Нам бы оставалось лишь нарисовать графики в Grafana и быстро локализовать сбойный узел (и при необходимости убрать с него все pod'ы, после чего произвести соответствующие работы**)…Читать полностью »

Я работал в разных компаниях, которые используют микросервисы. И они запускали их в docker контейнерах. Сейчас я работаю с проектом, который хоть и монолит, но его все равно удобнее запустить в контейнере.

С одной стороны, Docker очень универсальный инструмент, его можно легко и эффективно использовать для решения огромного количества задач. Он понятен и кажется, что все элементарно. Но с другой стороны, если не потратить свое время и ресурсы, чтобы “прокачаться” в грамотном его использовании, вы, скорее всего, переусложните простые вещи. И конечно же будете считать что вы правы, а Docker это бездарная громоздкая фигня, не подходящая для решения вашей уникальной задачи.
Читать полностью »

Настройка HA-кластера Kubernetes на «голом железе» с GlusterFS & MetalLB. Часть 2-3 - 1

Часть 1/3 тут

Привет и с возвращением! Это вторая часть статьи о настройке кластера Kubernetes на «голом железе». Ранее мы настраивали НА-кластер Kubernetes с помощью внешнего etcd, схемы «ведущий-ведущий» и балансировки нагрузки. Ну а теперь пришло время настроить дополнительную среду и утилиты, чтобы сделать кластер полезнее и максимально приближенным к рабочему состоянию.

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

Настройка HA-кластера Kubernetes на «голом железе» с GlusterFS & MetalLB. Часть 2-3 - 2

Читать полностью »

Назад к микросервисам вместе с Istio. Часть 1 - 1

Прим. перев.: Service mesh'и определённо стали актуальным решением в современной инфраструктуре для приложений, следующих микросервисной архитектуре. Хотя Istio может быть на слуху у многих DevOps-инженеров, это довольно новый продукт, который, будучи комплексным в смысле предоставляемых возможностей, может потребовать значительного времени для знакомства. Немецкий инженер Rinor Maloku, отвечающий за облачные вычисления для крупных клиентов в телекоммуникационной компании Orange Networks, написал замечательный цикл материалов, что позволяют достаточно быстро и глубоко погрузиться в Istio. Начинает же он свой рассказ с того, что вообще умеет Istio и как на это можно быстро посмотреть собственными глазами.

Istio — Open Source-проект, разработанный при сотрудничестве команд из Google, IBM и Lyft. Он решает сложности, возникающие в приложениях, основанных на микросервисах, например, такие как:Читать полностью »

Масштабирование приложения в Kubernetes на основе метрик из Prometheus - 1

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

Как обычно, ресурсов кластера на всех не хватает. Приходится что-то придумывать для оптимизации использования ресурсов, и Kubernetes отлично для этого подходит. В нём есть Horizontal Pod Autoscaler, который позволяет масштабировать приложения на основе метрик.

Масштабирование приложения в Kubernetes на основе метрик из Prometheus - 2

Метрики обычно поставляются метрик-сервером. Дальше я расскажу о замене метрик-сервера Prometheus’ом (потому что Prometheus реализует в себе данные, которые отдаются метрик-сервером и мы избавляемся от одного лишнего звена) и о том, как на основе метрик из Prometheus масштабировать свои приложения в Kubernetes.
Читать полностью »

Kubernetes tips & tricks: перевод работающих в кластере ресурсов под управление Helm 2 - 1

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

  • Будет простой — вне зависимости от того, облако у вас или bare metal.
  • При удалении могут потеряться сервисы в облаках, а также слетят связанные Load Balancer'ы в Kubernetes.

В нашем же случае, решение потребовалось для подхвата работающих ingress-nginx'ов при интеграции нашего оператора Kubernetes.Читать полностью »

На GitLab удаленка — это не бизнес-риск, а конкурентное преимущество.

Как удаленка ускоряет инновации на GitLab - 1
Я менеджер продуктов на GitLab. Обычно занимаюсь стадией планирования в жизненном цикле DevOps. Я пришел в ноябре 2016 и с тех пор любуюсь, какими семимильными шагами развивается GitLab как продукт и как команда. Многие новички спрашивают меня за кофе о культуре GitLab, особенно об удаленке, ведь мы только так и работаем. Со временем мои взгляды менялись, и я хочу рассказать, почему удаленка кажется мне не препятствием, а конкурентным преимуществом. Во всяком случае, для GitLab.

Читать полностью »

Discovering git vendor extension.

Cross-post from my medium blog: https://medium.com/opsops/git-vendor-295db4bcec3a

I would like to introduce the proper way to handle vendoring of git repositories.

What is is ‘vendoring’?

Vendoring is a way to integrate other’s work into your own. It’s the opposite of ‘linking’ against third-party library. Instead of having that library as a dependency, application uses this library as a part of own source code and keep that code ‘inside’ itself.

Normally, vendoring is done by language tooling: bundler, cargo, pip, etc. But sometimes you need to vendor something not covered by any existing toolset, or something multi-language, that it’s impossible to find the ‘core’ language tool for that.

The solution for this situation is vendoring on a git level. You have your own git repository (I call it ‘destination repo’), and you want to incorporate some other repository (I call it ‘source repo’) as a directory into your (destination repo).

The things you expect from a well-designed vendoring system (regardless of Git it is or not):

Привет, друзья. Краткое содержание предыдущих серий: мы запустили @Kubernetes Meetup в Mail.ru Group и почти сразу поняли, что не вмещаемся в рамки классического митапа. Так появился Love Kubernetes — special edition @Kubernetes Meetup #2 на День всех влюблённых.

Честно сказать, мы немного волновались, любите ли вы Kubernetes настолько сильно, чтобы провести с нами вечер 14 февраля. Но почти 600 заявок на участие в митапе, регистрацию на который пришлось довольно быстро остановить, 400 гостей и ещё 600 участников, которые присоединились к нам в онлайн-трансляции, сказали нам: «Да».

Как прошёл Love Kubernetes в Mail.ru Group 14 февраля - 1

Под катом видео с митапа — про Kubernetes в Booking.com, безопасность в K8S и Kubernetes на Bare Metal, — как всё прошло, кто победил — ваниль или дистрибутивы, — и новости нашей серии @Meetup.
Читать полностью »

Вышел GitLab 11.8 с поддержкой JavaScript в SAST, подгрупп в Pages и функцией отслеживания ошибок - 1
*автор иллюстрации: carmen_dorin

Поддержка JavaScript в SAST

Функция статического тестирования безопасности приложений GitLab (SAST) сканирует исходный код и помогает обнаружить потенциальные угрозы безопасности на ранних стадиях пайплайна. В версии 11.8 мы добавили опцию поддержки JavaScript в SAST в плюс к существующей опции поддержки node.js. Теперь возможно сканирование любых файлов JavaScript, например статических скриптов и HTML. Основным методом DevSecOps является сканирование изменений кода при каждом коммите, и благодаря этому изменению мы охватываем один из самых популярных веб-языков, помогая вам как можно раньше выявлять риски JavaScript.

GitLab Pages для подгрупп и шаблонов

В этом релизе GitLab мы серьезно улучшили Pages, и среди новшеств — 2 ключевых усовершенствования. Во-первых, мы реализовали поддержку GitLab Pages для проектов в подгруппах, обеспечив возможность публикации содержимого этих проектов в сети. GitLab 11.8 также объединяет наши наиболее популярные шаблоны для Pages, и, таким образом, пользователи могут начать работу в один клик.

Отслеживание ошибок с помощью Sentry

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

И множество других отличных функций!

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js