Потребление ресурсов в Prometheus: кто виноват и что делать (обзор и видео доклада)
Привет! На связи Владимир Гурьянов, технический директор Deckhouse Observability Platform в компании «Флант». В своём докладе на DevOpsConf 2024 я провёл небольшое расследование и выяснил, кто виноват в том, что Prometheus «съел» 64 ГБ оперативной памяти на сервере. А главное — я разобрался, что нужно делать, чтобы избегать этого в будущем. В этой статье приведу основные размышления и выводы из доклада.
https://habr.com/ru/companies/flant/articles/848968/
#devops #девопс
Подпишись 👉@i_DevOps
Привет! На связи Владимир Гурьянов, технический директор Deckhouse Observability Platform в компании «Флант». В своём докладе на DevOpsConf 2024 я провёл небольшое расследование и выяснил, кто виноват в том, что Prometheus «съел» 64 ГБ оперативной памяти на сервере. А главное — я разобрался, что нужно делать, чтобы избегать этого в будущем. В этой статье приведу основные размышления и выводы из доклада.
https://habr.com/ru/companies/flant/articles/848968/
#devops #девопс
Подпишись 👉@i_DevOps
👍6
Keycloak. Мапинг учеток через mTLS c двойной проверкой сертификатов в kubernetes
Продолжаем с делиться экспертизой отдела Security services infrastructure (департамент Security Services компании «Лаборатории Касперского»). В данном посте мы разберем, как легко настроить mTLS, обращаясь к ресурсам в k8s через ingress-контроллер, и подсоединить это все к keycloak. Пост будет полезен тем, кто в своей инфраструктуре использует PKI и, в частности, клиентские сертификаты.
https://habr.com/ru/companies/kaspersky/articles/846326/
#devops #девопс
Подпишись 👉@i_DevOps
Продолжаем с делиться экспертизой отдела Security services infrastructure (департамент Security Services компании «Лаборатории Касперского»). В данном посте мы разберем, как легко настроить mTLS, обращаясь к ресурсам в k8s через ingress-контроллер, и подсоединить это все к keycloak. Пост будет полезен тем, кто в своей инфраструктуре использует PKI и, в частности, клиентские сертификаты.
https://habr.com/ru/companies/kaspersky/articles/846326/
#devops #девопс
Подпишись 👉@i_DevOps
👍2
Как мы ищем деградации на нодах в кластерах Kubernetes
Меня зовут Станислав Егоркин, я инженер юнита IaaS департамента разработки Infrastructure в Авито. В этой статье я расскажу про инструмент, который мы используем для обнаружения деградаций на нодах в кластерах Kubernetes, а также покажу дашборд, где мы наблюдаем за состоянием всех наших нод.
Причины деградаций на нодах
Инфраструктура Авито — это тысячи bare-metal серверов, большая часть из которых объединена в десятки Kubernetes-кластеров. Понятно, что в таких масштабах отказ отдельных кубонод — событие регулярное. Причины могут быть разные: от поломки планки памяти до возникновения проблем с container runtime.
Хорошо, если нода отказала полностью, тогда Kubernetes сам обработает отказ, и рабочая нагрузка пострадает минимально. Хуже, когда деградация частичная. В этом случае нода может долго находиться в плохом состоянии, заставляя «страдать» все сервисы, которые оказались запущены на ней.
Обычно события в этом случае развиваются следующим образом: кто-то из разработчиков замечает деградацию своего микросервиса, локализовывает ее до ноды и приходит к нам. Мы диагностируем и прочиниваем ноду. Однако некоторые проблемы встречались на разных нодах снова и снова. И каждый раз они требовали нашего вмешательства.
https://habr.com/ru/companies/avito/articles/847466/
#devops #девопс
Подпишись 👉@i_DevOps
Меня зовут Станислав Егоркин, я инженер юнита IaaS департамента разработки Infrastructure в Авито. В этой статье я расскажу про инструмент, который мы используем для обнаружения деградаций на нодах в кластерах Kubernetes, а также покажу дашборд, где мы наблюдаем за состоянием всех наших нод.
Причины деградаций на нодах
Инфраструктура Авито — это тысячи bare-metal серверов, большая часть из которых объединена в десятки Kubernetes-кластеров. Понятно, что в таких масштабах отказ отдельных кубонод — событие регулярное. Причины могут быть разные: от поломки планки памяти до возникновения проблем с container runtime.
Хорошо, если нода отказала полностью, тогда Kubernetes сам обработает отказ, и рабочая нагрузка пострадает минимально. Хуже, когда деградация частичная. В этом случае нода может долго находиться в плохом состоянии, заставляя «страдать» все сервисы, которые оказались запущены на ней.
Обычно события в этом случае развиваются следующим образом: кто-то из разработчиков замечает деградацию своего микросервиса, локализовывает ее до ноды и приходит к нам. Мы диагностируем и прочиниваем ноду. Однако некоторые проблемы встречались на разных нодах снова и снова. И каждый раз они требовали нашего вмешательства.
https://habr.com/ru/companies/avito/articles/847466/
#devops #девопс
Подпишись 👉@i_DevOps
👍7❤1
Введение в Docker и Kubernetes: основы контейнерных технологий. Часть 1
Docker и Kubernetes — два инструмента, которые прочно вошли в арсенал современных разработчиков. Хотите разобраться в основах контейнеризации и оркестрации? Наша статья поможет вам в этом, раскрывая ключевые концепции и принципы работы этих технологий.
https://habr.com/ru/companies/sibur_official/articles/826964/
#devops #девопс
Подпишись 👉@i_DevOps
Docker и Kubernetes — два инструмента, которые прочно вошли в арсенал современных разработчиков. Хотите разобраться в основах контейнеризации и оркестрации? Наша статья поможет вам в этом, раскрывая ключевые концепции и принципы работы этих технологий.
https://habr.com/ru/companies/sibur_official/articles/826964/
#devops #девопс
Подпишись 👉@i_DevOps
👍6
DevToys
DevToys помогает в ежедневных задачах разработки, предлагая набор небольших инструментов, предназначенных для быстрого выполнения конкретных задач. Нет необходимости использовать множество ненадежных сайтов для простого декодирования текста или сжатия изображения. С помощью функции Smart Detection приложение интуитивно выбирает лучший инструмент для данных, находящихся в буфере обмена.
Конвертеры: JSON <> YAML, Дата, Числовые системы и т.д.
Кодировщики/Декодировщики: HTML, URL, Base64, GZip, JWT, QR-код и т.д.
Форматтеры: JSON, SQL, XML и т.д.
Генераторы: Хэш и Контрольная сумма, Lorem Ipsum, Пароли и т.д.
Инструменты для графики: Симулятор цветовой слепоты, Сжатие PNG/JPEG и т.д.
Тестеры: JSONPath, RegEx, XML и т.д.
Текстовые утилиты: Предварительный просмотр Markdown, Сравнение текста, Анализ и утилиты...
https://github.com/DevToys-app/DevToys
#devops #девопс
Подпишись 👉@i_DevOps
DevToys помогает в ежедневных задачах разработки, предлагая набор небольших инструментов, предназначенных для быстрого выполнения конкретных задач. Нет необходимости использовать множество ненадежных сайтов для простого декодирования текста или сжатия изображения. С помощью функции Smart Detection приложение интуитивно выбирает лучший инструмент для данных, находящихся в буфере обмена.
DevToys 2.0 включает 30 инструментов по умолчанию:Конвертеры: JSON <> YAML, Дата, Числовые системы и т.д.
Кодировщики/Декодировщики: HTML, URL, Base64, GZip, JWT, QR-код и т.д.
Форматтеры: JSON, SQL, XML и т.д.
Генераторы: Хэш и Контрольная сумма, Lorem Ipsum, Пароли и т.д.
Инструменты для графики: Симулятор цветовой слепоты, Сжатие PNG/JPEG и т.д.
Тестеры: JSONPath, RegEx, XML и т.д.
Текстовые утилиты: Предварительный просмотр Markdown, Сравнение текста, Анализ и утилиты...
https://github.com/DevToys-app/DevToys
#devops #девопс
Подпишись 👉@i_DevOps
👍4
Certified Kubernetes Security Specialist — мой опыт сдачи экзамена
- отнеситесь серьезно к качеству интернет-соединения. Из РФ ВПН не нужен
- популярные курсы не охватывают экзамен полностью (есть смысл поискать старые дампы на github)
- назначайте первую попытку хотя бы за месяц до окончания времени сдачи экзамена, таким образом, если завалите первую попытку, будет время подготовится ко второй
- за несколько дней пройдите killer.sh, получите выкладку ответов и после прохождения несколько раз пройдите у себя в домашней лабораторной
- обязательно будет задание на анализ поведения, на выбор дают falco и sysdig. Возьмите sysdig, на экзамене он сэкономит время, потренируйтесь в этом перед сдачей
https://habr.com/ru/articles/721136/
#devops #девопс
Подпишись 👉@i_DevOps
- отнеситесь серьезно к качеству интернет-соединения. Из РФ ВПН не нужен
- популярные курсы не охватывают экзамен полностью (есть смысл поискать старые дампы на github)
- назначайте первую попытку хотя бы за месяц до окончания времени сдачи экзамена, таким образом, если завалите первую попытку, будет время подготовится ко второй
- за несколько дней пройдите killer.sh, получите выкладку ответов и после прохождения несколько раз пройдите у себя в домашней лабораторной
- обязательно будет задание на анализ поведения, на выбор дают falco и sysdig. Возьмите sysdig, на экзамене он сэкономит время, потренируйтесь в этом перед сдачей
https://habr.com/ru/articles/721136/
#devops #девопс
Подпишись 👉@i_DevOps
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Ускорьте запуск pod'ов, повторно используя слои образов с других узлов с помощью Spegel.
Предположим, что в кластере Kubernetes есть StatefulSet с 20 репликами pod'ов. Если образы, используемые для контейнеров pod'ов, имеют значительный размер, это требует времени для загрузки образов на рабочие узлы. Это значительно замедляет процесс запуска всех pod'ов StatefulSet, так как они запускаются по очереди.
В другом сценарии, допустим, один из рабочих узлов становится неисправным, и pod'ы, работающие на нём, выселяются. Тогда pod'ы переназначаются на другой узел, но им снова нужно загружать образы из контейнерного реестра через интернет, что увеличивает время простоя.
https://medium.com/linux-shots/speed-up-pod-startup-by-re-using-image-layers-from-other-nodes-with-spegel-817f88d40a92
#devops #девопс
Подпишись 👉@i_DevOps
Предположим, что в кластере Kubernetes есть StatefulSet с 20 репликами pod'ов. Если образы, используемые для контейнеров pod'ов, имеют значительный размер, это требует времени для загрузки образов на рабочие узлы. Это значительно замедляет процесс запуска всех pod'ов StatefulSet, так как они запускаются по очереди.
В другом сценарии, допустим, один из рабочих узлов становится неисправным, и pod'ы, работающие на нём, выселяются. Тогда pod'ы переназначаются на другой узел, но им снова нужно загружать образы из контейнерного реестра через интернет, что увеличивает время простоя.
https://medium.com/linux-shots/speed-up-pod-startup-by-re-using-image-layers-from-other-nodes-with-spegel-817f88d40a92
#devops #девопс
Подпишись 👉@i_DevOps
👍3
Основы Docker: контейнеризация, Dockerfile и Docker Compose. Часть 2
Меня зовут Толя, я лидер компетенции Java в Цифровом СИБУРе. Наш прошлый материал о Docker собрал классный фидбэк, поэтому мы решили развить тему и подготовить ещё несколько статей, двигаясь от простого к сложному.
В этом материале речь пойдёт о том, что помогает избежать конфликтов зависимостей и проблем с изоляцией, возникающих при запуске нескольких приложений на одном сервере. Для решения этих задач используются технологии контейнеризации, которые позволяют создавать изолированные окружения для приложений, устраняя проблемы совместимости и упрощая процесс развёртывания. Рассмотрим, как работает контейнеризация и какие инструменты помогают сделать её максимально эффективной.
https://habr.com/ru/companies/sibur_official/articles/846350/
#devops #девопс
Подпишись 👉@i_DevOps
Меня зовут Толя, я лидер компетенции Java в Цифровом СИБУРе. Наш прошлый материал о Docker собрал классный фидбэк, поэтому мы решили развить тему и подготовить ещё несколько статей, двигаясь от простого к сложному.
В этом материале речь пойдёт о том, что помогает избежать конфликтов зависимостей и проблем с изоляцией, возникающих при запуске нескольких приложений на одном сервере. Для решения этих задач используются технологии контейнеризации, которые позволяют создавать изолированные окружения для приложений, устраняя проблемы совместимости и упрощая процесс развёртывания. Рассмотрим, как работает контейнеризация и какие инструменты помогают сделать её максимально эффективной.
https://habr.com/ru/companies/sibur_official/articles/846350/
#devops #девопс
Подпишись 👉@i_DevOps
👍5
Mount — ещё один способ уменьшения размера Docker-образа
Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby. Пришли со словами: предыдущий разработчик не передал исходный код, но систему нужно развивать. Я уверен, что по условиям контракта передавали исходный код, но заказчики всегда относятся попустительски: им присылают архив на почту, а они потом стирают старое барахло, чтобы ящик почистить.
Так вот, зайдя на продакшен-сервер, я нашел развернутую платформу, да ещё и с .git папочкой. Ура, у меня были исходники с историей (она потом мне ни разу не понадобилась). Загрузил в нашу репу исходники, поизучал. В ходе контракта нужно было изменить деплой с rsync на контейнеризацию и перетащить все на Alt Linux (или Astra, уже не помню).
Обновили Ruby-пакеты (gems), обновили под них код и написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.
https://habr.com/ru/articles/851384/
#devops #девопс
Подпишись 👉@i_DevOps
Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby. Пришли со словами: предыдущий разработчик не передал исходный код, но систему нужно развивать. Я уверен, что по условиям контракта передавали исходный код, но заказчики всегда относятся попустительски: им присылают архив на почту, а они потом стирают старое барахло, чтобы ящик почистить.
Так вот, зайдя на продакшен-сервер, я нашел развернутую платформу, да ещё и с .git папочкой. Ура, у меня были исходники с историей (она потом мне ни разу не понадобилась). Загрузил в нашу репу исходники, поизучал. В ходе контракта нужно было изменить деплой с rsync на контейнеризацию и перетащить все на Alt Linux (или Astra, уже не помню).
Обновили Ruby-пакеты (gems), обновили под них код и написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.
https://habr.com/ru/articles/851384/
#devops #девопс
Подпишись 👉@i_DevOps
👍8
Какие инструкции есть у Dockerfile?
FROM Задаёт базовый (родительский) образ.
LABEL. Описывает метаданные. Например — сведения о том, кто создал и поддерживает образ.
ENV Устанавливает постоянные переменные среды.
RUN. Выполняет команду и создаёт слой образа. Используется для установки в контейнер пакетов.
COPY. Копирует в контейнер файлы и директории.
ADD. Копирует файлы и директории в контейнер, может распаковывать локальные .tar-файлы.
CMD Описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD.
WORKDIR. Задаёт рабочую директорию для следующей инструкции.
ARG Задаёт переменные для передачи Docker во время сборки образа.
ENTRYPOINT Предоставляет команду с аргументами для вызова во время выполнения контейнера. Аргументы не переопределяются.
EXPOSE Указывает на необходимость открыть порт.
VOLUME Создаёт точку монтирования для работы с постоянным хранилищем.
#devops #девопс
Подпишись 👉@i_DevOps
LABEL. Описывает метаданные. Например — сведения о том, кто создал и поддерживает образ.
ENV Устанавливает постоянные переменные среды.
RUN. Выполняет команду и создаёт слой образа. Используется для установки в контейнер пакетов.
COPY. Копирует в контейнер файлы и директории.
ADD. Копирует файлы и директории в контейнер, может распаковывать локальные .tar-файлы.
CMD Описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD.
WORKDIR. Задаёт рабочую директорию для следующей инструкции.
ARG Задаёт переменные для передачи Docker во время сборки образа.
ENTRYPOINT Предоставляет команду с аргументами для вызова во время выполнения контейнера. Аргументы не переопределяются.
EXPOSE Указывает на необходимость открыть порт.
VOLUME Создаёт точку монтирования для работы с постоянным хранилищем.
#devops #девопс
Подпишись 👉@i_DevOps
👍9❤2
This media is not supported in your browser
VIEW IN TELEGRAM
ContainerSSH
SSH-сервер, запускающий контейнеры в Kubernetes и Docker
https://github.com/ContainerSSH/ContainerSSH
#devops #девопс
Подпишись 👉@i_DevOps
SSH-сервер, запускающий контейнеры в Kubernetes и Docker
https://github.com/ContainerSSH/ContainerSSH
#devops #девопс
Подпишись 👉@i_DevOps
👍3