Когда вы собираете контейнерные образы, которые должны запускаться на разном железе, одного тега недостаточно.
Нужно понимать, действительно ли образ поддерживает несколько архитектур, и здесь помогает
С её помощью можно точно увидеть, под какие платформы собран образ, например, AMD64 для облачных серверов и ARM64 для edge-устройств, всё это под одним тегом. Это простой способ убедиться, что образ, который вы тянете, будет стабильно работать в разных окружениях.
Это особенно важно для гибридных деплоев. Например, ваш бэкенд крутится в облаке на AMD64, а edge-шлюзы или IoT-устройства работают на ARM.
Проверяя манифест, вы гарантируете, что одна и та же версия контейнера будет корректно работать везде, без необходимости вручную собирать и тегировать отдельные образы.
Для команд, которые доставляют приложения на разнородное железо, использование
👉 DevOps Portal
Нужно понимать, действительно ли образ поддерживает несколько архитектур, и здесь помогает
docker manifest. Команда docker manifest позволяет инспектировать и управлять мультиархитектурными образами.С её помощью можно точно увидеть, под какие платформы собран образ, например, AMD64 для облачных серверов и ARM64 для edge-устройств, всё это под одним тегом. Это простой способ убедиться, что образ, который вы тянете, будет стабильно работать в разных окружениях.
Это особенно важно для гибридных деплоев. Например, ваш бэкенд крутится в облаке на AMD64, а edge-шлюзы или IoT-устройства работают на ARM.
Проверяя манифест, вы гарантируете, что одна и та же версия контейнера будет корректно работать везде, без необходимости вручную собирать и тегировать отдельные образы.
Для команд, которые доставляют приложения на разнородное железо, использование
docker manifest – простой способ избежать ситуации, когда работает на одной машине, но не работает на другой.Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍5
Многим организациям сложно управлять несколькими Kubernetes-кластерами
Например,
У вас могут быть отдельные кластеры для dev, stage и prod.
Если вы хотите задеплоить что-то вроде стека Prometheus в каждый кластер, вам обычно приходится переключать контексты kubeconfig и накатывать всё по одному.
Вместо этого вы можете использовать Clusternet (открытый проект CNCF) чтобы управлять всеми Kubernetes-кластерами из одного хост-кластера.
Clusternet умеет работать с:
- обычными Kubernetes-кластерами
- managed-кластерами
- on-prem кластерами
- edge-кластерами
В хост-кластере вы поднимаете hub и регистрируете кластеры, которыми хотите управлять, как дочерние.
После регистрации вы можете использовать API-сервер хост-кластера, чтобы деплоить приложения и выполнять операции во всех этих кластерах.
GitHub: clusternet
👉 DevOps Portal
Например,
У вас могут быть отдельные кластеры для dev, stage и prod.
Если вы хотите задеплоить что-то вроде стека Prometheus в каждый кластер, вам обычно приходится переключать контексты kubeconfig и накатывать всё по одному.
Вместо этого вы можете использовать Clusternet (открытый проект CNCF) чтобы управлять всеми Kubernetes-кластерами из одного хост-кластера.
Clusternet умеет работать с:
- обычными Kubernetes-кластерами
- managed-кластерами
- on-prem кластерами
- edge-кластерами
В хост-кластере вы поднимаете hub и регистрируете кластеры, которыми хотите управлять, как дочерние.
После регистрации вы можете использовать API-сервер хост-кластера, чтобы деплоить приложения и выполнять операции во всех этих кластерах.
GitHub: clusternet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Kubeshark обеспечивает глубокую видимость и мониторинг всего API-трафика и payload'ов, проходящих внутрь, наружу и между контейнерами и подами внутри кластера Kubernetes
Забираем здесь
👉 DevOps Portal
Забираем здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥6👍4
Большинство обсуждений Docker в итоге приходят к одному вопросу: использовать slim или alpine, какой базовый образ выбрать?
Alpine очень маленький и выглядит привлекательно, если нужно максимально ужать размер образа.
Но он использует musl вместо glibc, поэтому некоторые приложения ведут себя иначе, некоторые библиотеки работают не так, как ожидается, и отладка может быть болезненной.
Отлично подходит для простых статических бинарников, которые почти не завязаны на зависимости уровня ОС.
Slim-образы (например,
Это обычно означает меньше сюрпризов в проде, проще отладку и лучшую совместимость с существующей документацией и примерами.
Для большинства веб-приложений, API и инструментов slim — более безопасный выбор по умолчанию. Вы всё равно получаете меньшие образы, быстрые pull’ы и нормальную безопасность, но без борьбы с странными edge-кейсами musl.
Alpine имеет смысл, когда вы:
- доставляете один статический бинарник,
- полностью понимаете свои зависимости,
- готовы разруливать возможные проблемы совместимости, если они появятся.
👉 DevOps Portal
Alpine очень маленький и выглядит привлекательно, если нужно максимально ужать размер образа.
Но он использует musl вместо glibc, поэтому некоторые приложения ведут себя иначе, некоторые библиотеки работают не так, как ожидается, и отладка может быть болезненной.
Отлично подходит для простых статических бинарников, которые почти не завязаны на зависимости уровня ОС.
Slim-образы (например,
debian:slim или node:22-slim) больше, чем Alpine, но всё ещё значительно меньше полноразмерных дистрибутивов. Они используют glibc, поэтому большинство инструментов и библиотек просто работают.Это обычно означает меньше сюрпризов в проде, проще отладку и лучшую совместимость с существующей документацией и примерами.
Для большинства веб-приложений, API и инструментов slim — более безопасный выбор по умолчанию. Вы всё равно получаете меньшие образы, быстрые pull’ы и нормальную безопасность, но без борьбы с странными edge-кейсами musl.
Alpine имеет смысл, когда вы:
- доставляете один статический бинарник,
- полностью понимаете свои зависимости,
- готовы разруливать возможные проблемы совместимости, если они появятся.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤13🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по командам Linux
Скорее всего, вы не знали, но команда
👉 DevOps Portal
Скорее всего, вы не знали, но команда
find позволяет быстро найти все исполняемые файлы в каталоге:find . -type f -executable
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍10💊2
Одна простая привычка, которая делает Dockerfile гораздо проще в поддержке: это алфавитная сортировка многострочных списков пакетов.
Звучит мелочью, но это сильно влияет на читаемость и долгосрочную поддержку
Когда вы ставите пакеты внутри многострочного блока
Алфавитный порядок полностью убирает эту проблему: список можно быстро просканировать, моментально найти дубликаты и держать всё единообразным в разных окружениях.
Это также уменьшает «шумные» диффы в код-ревью
Когда пакеты отсортированы, добавление или удаление одного пункта даёт чистое и предсказуемое изменение.
Без сортировки маленькое обновление часто превращается в большой дифф, усложняя ревью больше, чем нужно.
Этот приём помогает и при росте команды.
Когда Dockerfile трогают несколько человек, никто не будет по-разному переставлять пакеты или использовать несогласованное форматирование.
Структура остаётся стабильной, и поддержка со временем становится проще.
Мелкое улучшение, но на сотнях билдов оно экономит массу нервов
👉 DevOps Portal
Звучит мелочью, но это сильно влияет на читаемость и долгосрочную поддержку
Когда вы ставите пакеты внутри многострочного блока
apt-get install или apk add, легко случайно добавить дубликаты или пропустить что-то, затерявшееся в середине списка.Алфавитный порядок полностью убирает эту проблему: список можно быстро просканировать, моментально найти дубликаты и держать всё единообразным в разных окружениях.
Это также уменьшает «шумные» диффы в код-ревью
Когда пакеты отсортированы, добавление или удаление одного пункта даёт чистое и предсказуемое изменение.
Без сортировки маленькое обновление часто превращается в большой дифф, усложняя ревью больше, чем нужно.
Этот приём помогает и при росте команды.
Когда Dockerfile трогают несколько человек, никто не будет по-разному переставлять пакеты или использовать несогласованное форматирование.
Структура остаётся стабильной, и поддержка со временем становится проще.
Мелкое улучшение, но на сотнях билдов оно экономит массу нервов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5
NGINX Gateway Fabric - это опенсорс проект, который реализует Gateway API, используя NGINX в качестве data plane.
Цель проекта: реализовать базовые возможности Gateway API.
GitHub: nginx-gateway-fabric
👉 DevOps Portal
Цель проекта: реализовать базовые возможности Gateway API.
GitHub: nginx-gateway-fabric
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5💊3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный симулятор DDoS-атак, чтобы понять, как работают такие атаки и почему защита критически важна.
http://devops-daily.com/games/ddos-simulator
👉 DevOps Portal
http://devops-daily.com/games/ddos-simulator
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6
OpenTelemetry — это опенсорс стандарт для сбора трассировок, метрик и логов в современных приложениях
Вместо того чтобы каждый язык, фреймворк или библиотека предоставляли собственный способ генерации телеметрии, OpenTelemetry предлагает единый и консистентный подход.
С его API и SDK вы один раз инструментируете свой код и отправляете данные в любой backend по вашему выбору — Grafana, Datadog, New Relic, Prometheus или любой другой. Это означает, что вы не привязаны к какому-то одному вендору и не зависите от конкретного агента.
Он также унифицирует телеметрию между сервисами. Если у вас распределённая система с несколькими микросервисами на разных языках, OpenTelemetry помогает связать их поведение в единый trace, чтобы вы могли понять, откуда берутся задержки или сбои.
Цель проста: сделать наблюдаемость проще, переносимой и последовательной, чтобы командытратили меньше времени на «склейку» инфраструктуры и больше - на понимание своих систем.
👉 DevOps Portal
Вместо того чтобы каждый язык, фреймворк или библиотека предоставляли собственный способ генерации телеметрии, OpenTelemetry предлагает единый и консистентный подход.
С его API и SDK вы один раз инструментируете свой код и отправляете данные в любой backend по вашему выбору — Grafana, Datadog, New Relic, Prometheus или любой другой. Это означает, что вы не привязаны к какому-то одному вендору и не зависите от конкретного агента.
Он также унифицирует телеметрию между сервисами. Если у вас распределённая система с несколькими микросервисами на разных языках, OpenTelemetry помогает связать их поведение в единый trace, чтобы вы могли понять, откуда берутся задержки или сбои.
Цель проста: сделать наблюдаемость проще, переносимой и последовательной, чтобы командытратили меньше времени на «склейку» инфраструктуры и больше - на понимание своих систем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3😁1
Не нравится бесконечно длинный вывод в команде
top?Используйте опцию
-i, чтобы скрыть неактивные процессы и видеть только активные:$ top -i
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29🔥5👍3🤝2
Строю свой домашний лаб. KVM на всех машинах.
Пока развернул DNS-сервер и NTP-сервер. Основной и вторичный DNS с включённым zone transfer. NTP-сервер только внутренний, все остальные сервера берут с него время и дату.
На этой неделе собираюсь поднять Zabbix и AWX. Zabbix - для мониторинга инфраструктуры, AWX - для запуска Ansible.
Nessus для сканирования, load balancer для проброса трафика, registry для хостинга контейнеров
Кластер из 3 нод: 1 master, 2 worker'а.
GitLab помещу внутрь кластера.
Для LDAP-аутентификации буду использовать FreeIPA.
Цель: симулировать air-gapped окружение
👉 DevOps Portal
Пока развернул DNS-сервер и NTP-сервер. Основной и вторичный DNS с включённым zone transfer. NTP-сервер только внутренний, все остальные сервера берут с него время и дату.
На этой неделе собираюсь поднять Zabbix и AWX. Zabbix - для мониторинга инфраструктуры, AWX - для запуска Ansible.
Nessus для сканирования, load balancer для проброса трафика, registry для хостинга контейнеров
Кластер из 3 нод: 1 master, 2 worker'а.
GitLab помещу внутрь кластера.
Для LDAP-аутентификации буду использовать FreeIPA.
Цель: симулировать air-gapped окружение
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍16🔥5💊1
Запутались в том, чем отличаются Dockerfile и Docker Compose? Это для вас.
Хотя они дополняют друг друга, их назначения в контейнерной среде разные.
- Dockerfile: используется для создания и сборки Docker-образов.
- Docker Compose: используется для запуска Docker-контейнеров в составе мультиконтейнерного окружения или с определёнными параметрами рантайма.
Примечание: начиная с версии 1.28.6, Docker Compose по умолчанию использует файлы compose.yaml или compose.yml, сохраняя обратную совместимость с docker-compose.yaml/yml. Если присутствуют оба варианта, предпочтение отдаётся compose.yaml.
Вот простая иллюстрация, чтобы помочь вам лучше разобраться
👉 DevOps Portal
Хотя они дополняют друг друга, их назначения в контейнерной среде разные.
- Dockerfile: используется для создания и сборки Docker-образов.
- Docker Compose: используется для запуска Docker-контейнеров в составе мультиконтейнерного окружения или с определёнными параметрами рантайма.
Примечание: начиная с версии 1.28.6, Docker Compose по умолчанию использует файлы compose.yaml или compose.yml, сохраняя обратную совместимость с docker-compose.yaml/yml. Если присутствуют оба варианта, предпочтение отдаётся compose.yaml.
Вот простая иллюстрация, чтобы помочь вам лучше разобраться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍11
Долгий запуск команды приводит к тайм-ауту?
Используйте настройку
ansible_command_timeout Она задает максимальное время (в секундах), в течение которого Ansible будет ждать завершения команды
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7
Практические DevOps/Cloud-проекты для обучения: от новичка до продвинутого уровня
GitHub: DevOps-Projects
👉 DevOps Portal
GitHub: DevOps-Projects
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥6👍4
Многие новички сразу бросаются в Kubernetes, Terraform или CI/CD-пайплайны, потому что это выглядит интересно. Но у DevOps есть фундамент, и если его пропустить, дальше будет только сложнее.
Прежде чем трогать Kubernetes, есть несколько базовых навыков, которые должен прокачать каждый инженер.
Начните с Linux. Почти все инструменты, которые вы используете в DevOps, работают на Linux. Вам нужно уверенно разбираться в файловых правах, процессах, сервисах, логах и работе в командной строке. Если вы не можете свободно ориентироваться на Linux-сервере, управление кластерами быстро превращается в хаос.
Тщательно разберитесь с Git. Ветвление, слияние, ребейзы, ревью изменений – это ежедневные задачи в DevOps. Хорошие практики работы с системой контроля версий сильно упрощают совместную работу и автоматизацию.
Освойте Bash-скриптинг. Большая часть автоматизации начинается с простых скриптов. Умение писать, отлаживать и комбинировать команды помогает понимать, как работают CI/CD-пайплайны и облачная автоматизация под капотом.
Разберитесь в основах сетей. IP-адреса, порты, DNS, подсети, маршруты, балансировщики - в облаке ничего не работает без сети. Если вы понимаете, как движется трафик, всё остальное в DevOps становится куда проще.
Когда эти фундаментальные вещи у вас на хорошем уровне, такие инструменты, как Docker, Kubernetes, Terraform или AWS, начинают быть по-настоящему понятны.
Пропуская базу, вы только тормозите себя в будущем; изучая её заранее, вы облегчаете всё, что дальше.
👉 DevOps Portal
Прежде чем трогать Kubernetes, есть несколько базовых навыков, которые должен прокачать каждый инженер.
Начните с Linux. Почти все инструменты, которые вы используете в DevOps, работают на Linux. Вам нужно уверенно разбираться в файловых правах, процессах, сервисах, логах и работе в командной строке. Если вы не можете свободно ориентироваться на Linux-сервере, управление кластерами быстро превращается в хаос.
Тщательно разберитесь с Git. Ветвление, слияние, ребейзы, ревью изменений – это ежедневные задачи в DevOps. Хорошие практики работы с системой контроля версий сильно упрощают совместную работу и автоматизацию.
Освойте Bash-скриптинг. Большая часть автоматизации начинается с простых скриптов. Умение писать, отлаживать и комбинировать команды помогает понимать, как работают CI/CD-пайплайны и облачная автоматизация под капотом.
Разберитесь в основах сетей. IP-адреса, порты, DNS, подсети, маршруты, балансировщики - в облаке ничего не работает без сети. Если вы понимаете, как движется трафик, всё остальное в DevOps становится куда проще.
Когда эти фундаментальные вещи у вас на хорошем уровне, такие инструменты, как Docker, Kubernetes, Terraform или AWS, начинают быть по-настоящему понятны.
Пропуская базу, вы только тормозите себя в будущем; изучая её заранее, вы облегчаете всё, что дальше.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45❤20💊3🏆1
Atlas - опенсорс инструмент, предназначенный для анализа сети, визуализации и мониторинга Docker-контейнеров
Будет полезно тем кто хочет хоть как-то понять что твориться с Docker контейнерами у них в сети.
Демку можно посмотреть тут.
👉 DevOps Portal
Будет полезно тем кто хочет хоть как-то понять что твориться с Docker контейнерами у них в сети.
Демку можно посмотреть тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Изучаете, как вручную размещать Pod'ы в Kubernetes?
На платформе iximiuz Labs доступно задание, которое охватывает node selectors, правила affinity и taints.
Полезно, когда вам нужно контролировать размещение Pod'ов, например, для запуска рабочих нагрузок на узлах с GPU, изоляции сред или распределения трафика.
Если вы хотите освоить эти техники, это задание - отличный способ попрактиковаться.
Попробуйте здесь
👉 DevOps Portal
На платформе iximiuz Labs доступно задание, которое охватывает node selectors, правила affinity и taints.
Полезно, когда вам нужно контролировать размещение Pod'ов, например, для запуска рабочих нагрузок на узлах с GPU, изоляции сред или распределения трафика.
Если вы хотите освоить эти техники, это задание - отличный способ попрактиковаться.
Попробуйте здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3👍2