DevOps Portal | Linux
13.2K subscribers
931 photos
124 videos
10 files
958 links
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

Сотрудничество, реклама: @devmangx

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Download Telegram
Docker Tip

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

Как вы, возможно, знаете, каждый Docker-образ состоит из слоёв.

Каждый слой добавляется отдельной инструкцией в вашем Dockerfile.

И именно эти слои могут объяснить, почему образ получается большим, долго билдится или плохо кешируется.

Вот как можно посмотреть слои и понять, что изменилось в каждом из них.

Можно воспользоваться утилитой dive.

Она даёт наглядное представление о:

каждом созданном слое
какие файлы были добавлены или изменены
сколько места занимает каждый слой

Когда начинаешь анализировать слои образа, можно понять:

- какая команда добавляет лишний «вес»
- как оптимизировать Dockerfile для более компактных и эффективных сборок

Также утилита показывает image efficiency score — метрику, которая отражает, сколько данных дублируется или расходуется впустую между слоями образа

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
Docker 101: Загрузка образа для конкретной платформы

Имя образа описывает, где он хранится: реестр, репозиторий и тег. Но в нём нет информации о целевой платформе (операционная система и архитектура CPU). Тогда как же docker pull подтягивает нужную сборку?

Учись на практике: https://labs.iximiuz.com/challenges/docker-pull-image-for-platform

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
KAOS — это Kubernetes-наной координацитивный фреймворк для деплоя и оркестрации AI-агентов с интеграцией MCP-инструментов, поддержкой мультиагенти, иерархической делегации, OpenAI-совместимыми эндпоинтами, а также визуальным дашбордом для мониторинга и дебага

GitHub: kaos

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
SecurityContext в Kubernetes - одна из самых важных и при этом часто игнорируемых частей безопасности Kubernetes

Он применяется на уровне Pod и Container.

🔵 Уровень Pod → значения по умолчанию для ВСЕХ контейнеров
🟢 Уровень контейнера → кастомные настройки для каждого контейнера (переопределяют Pod-level)

Вот практический гайд, в котором разбираем:

- Почему важно запускать контейнеры не от root
- Какой UID по умолчанию назначается Pod’ам
- Разницу между SecurityContext на уровне Pod и контейнера (с примерами)
- Как Kubernetes обрабатывает образы контейнеров с non-root пользователями и без них

Читать здесь:
https://newsletter.devopscube.com/p/secure-kubernetes-pods-with-securitycontext

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Объяснение Route 53 Private Hosted Zone

В этом подробном блоге вы узнаете ключевые концепции, необходимые для работы с DNS в корпоративной инфраструктуре

- Разбор Route 53 Private Hosted Zones
- Понимание работы AWS DNS Resolver
- Наглядный пошаговый разбор DNS-флоу с использованием VPN
- Как работает AWS DNS Resolver внутри VPC

Подробный блог: https://devopscube.com/route53-private-hosted-zone/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
Совет дня по Linux

Большинство людей используют echo для вывода информации

Но в многих случаях его также можно использовать, чтобы избежать ошибок

echo позволяет развернуть подстановочные знаки и понять, что произойдёт, ещё до выполнения команды.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍11🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Когда тебя наняли на роль DevOps,
но в итоге ты ещё и тащишь на себе SRE, Cloud Engineering и обязанности Incident Manager-а.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24👍12🔥7🤯4
Архитектура Argo CD: разбор

К концу этого материала вы:

Поймёте, как Argo CD реально работает под капотом.

Внутри:

- Ключевые компоненты и их фактические роли
- Как они взаимодействуют между собой и синхронизируют изменения
- Как Argo CD хранит данные и как правильно настраивать бэкапы
- Как запускать Argo CD в режиме высокой доступности
- Безопасность и мониторинг (Prometheus + Grafana)

и многое другое…

Подробный гайд: https://devopscube.com/argo-cd-architecture

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
Please open Telegram to view this post
VIEW IN TELEGRAM
9🤔6😁4🔥3👍1
Краткий совет по Linux

Вы можете использовать команду pgrep, чтобы найти PID процесса по его имени, шаблону или другим критериям.

$ pgrep firefox


Вы можете использовать это с подстановкой команды, чтобы завершить процесс:

$ kill -9 $(pgrep firefox)


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥7
Обработка миллионов файлов – это та точка, где большинство распределённых систем хранения начинают тормозить.

По мере роста количества файлов основной проблемой становится их быстрый поиск.

Большинство систем держат единый индекс, в котором хранится информация о размещении всех файлов.

Когда тысячи запросов одновременно бьют в этот индекс, всё начинает замедляться.

В CubeFS это реализовано иначе.

Система разбивает файловый индекс между несколькими серверами.

Вместо того чтобы один сервер обрабатывал все запросы, нагрузка распределяется.

Поэтому система остаётся быстрой даже тогда, когда множество приложений одновременно читают миллионы файлов.

Если ты работаешь с данными для обучения ИИ или обрабатываешь большие датасеты, такая архитектура имеет значение.

Github: cubefs

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54
Linux Storage 101: Форматирование пустого диска

Продолжая тему управления хранилищем — сможешь ли ты отформатировать пустой диск в файловую систему ext4, затем примонтировать его и записать файл, чтобы убедиться, что всё работает как ожидается?

Супербазовая задача, но знать обязательно: https://labs.iximiuz.com/challenges/storage-simple-format

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Совет по Kubernetes: Ресайзинг подов в месте их работы

Вот как это работает 👇

Функция изменения размера пода In-Place Pod Resize позволяет изменять запросы и ограничения по CPU и памяти на работающем поде без его удаления или воссоздания.

Когда необходимо изменить размер,

Kubelet обновляет cgroup контейнера на уровне Linux напрямую, без удаления пода или перезапуска контейнера, если только это не запрашивается явно.

Флаг --subresource resize сообщает Kubernetes, что обновляются только изменяемые поля пода (CPU и память).

Вот подробный гайд, в котором разобрано:

- как это работает под капотом
- как изменить размер пода на месте с использованием VPA.
- проблемы с уменьшением памяти и многое другое...

Читать здесь: https://devopscube.com/vpa-in-place-pod-resize/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
8
This media is not supported in your browser
VIEW IN TELEGRAM
Все используют балансировщик нагрузки, но немногие понимают алгоритмы балансировки

Вот несколько популярных:

🔹Round Robin — распределяет входящие запросы по серверам по очереди в фиксированном циклическом порядке.

🔹IP Hash — использует хеш-функцию от IP-адреса клиента, чтобы стабильно направлять его на один и тот же сервер.

🔹Least Connections — перенаправляет новые запросы на сервер с наименьшим количеством активных соединений.

🔹Weighted Round Robin — распределяет запросы с учётом веса (веса или производительности) каждого сервера, передавая больше трафика более мощным узлам.

🔹Least Response Time — направляет запросы на сервер с наименьшей средней задержкой или временем отклика.

🔹Random — выбирает сервер случайным образом для каждого входящего запроса, без определённой логики или последовательности.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍1
Как собрать продакшн-готовый образ контейнера для Go-приложения

Достаточно ли тебе FROM scratch? Посмотри эти практические задания, чтобы разобраться с типичными проблемами контейнеризации Go:

- Cтатическая линковка: https://labs.iximiuz.com/challenges/dockerize-golang-application-static-linking

- Динамическая линковка https://labs.iximiuz.com/challenges/dockerize-golang-application-dynamic-linking


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Podman — альтернатива Docker без демона

Podman – это container runtime, который имитирует Docker на уровне основных команд (run, exec, kill и т.д.), но при этом под капотом использует daemonless-архитектуру. У такого подхода есть свои плюсы (например, меньше moving parts, более простой rootless-сетап) и минусы (например, без демона некоторые операции с контейнерами требуют дополнительной интеграции с systemd).

Вот несколько практических челленджей, если хотите попробовать Podman и сравнить его с Docker:

- Запуск и инспектирование контейнера в Podman
https://labs.iximiuz.com/challenges/start-container-with-podman
- Автоматический рестарт контейнера Podman после перезагрузки хоста
https://labs.iximiuz.com/challenges/podman-101-container-restart-on-host-reboot
- Запуск и инспектирование контейнера в Docker (для сравнения)
https://labs.iximiuz.com/challenges/start-container-with-docker

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Настройка Kubernetes-кластера на Kubeadm 1.36 (пошагово)

Вот почему стоит развернуть собственный self-hosted Kubernetes-кластер.

Когда вы поднимаете кластер с нуля,

вы начинаете гораздо лучше понимать, как устроены control plane-компоненты и worker-ноды Kubernetes.

Кроме того, если вы готовитесь к экзаменам CKA или CKS, управление кластером через Kubeadm входит в официальный syllabus этих сертификаций.

Вот обновлённый гайд по настройке Kubeadm 1.36, где весь процесс разобран пошагово.

https://devopscube.com/setup-kubernetes-cluster-kubeadm/

Для DevOps-инженера крайне важно глубоко понимать все компоненты, из которых состоит Kubernetes-кластер.

Рекомендую в процессе обучения использовать именно self-hosted Kubernetes-кластер, а не готовые managed-решения, которые легко доступны "из коробки".

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Stakpak — это опенсос AI-агент для терминала, заточенный под DevOps: генерирует инфраструктурный код, дебажит Kubernetes и автоматизирует деплои. При этом использует подстановку секретов, чтобы LLM никогда не получала доступ к вашим реальным данным

https://github.com/stakpak/agent

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135
Apache Airflow на Kubernetes (MLOps)

Если вы хотите работать с проектами в области MLOps, Data Engineering или AI-инфраструктуры,
знание Apache Airflow может дать вам серьёзное преимущество.

Apache Airflow — это open-source платформа для построения и управления сложными воркфлоу и пайплайнами.

В этом блоге разобрали:

- Что такое Apache Airflow
- Как работают DAG’и
- Как устроены executors в Airflow
- Развёртывание Airflow в Kubernetes
- Настройку GitSync для управления DAG’ами
- Важные Day 2 operational insights и многое другое...

Читайте здесь: https://devopscube.com/apache-airflow-on-kubernetes/

Изучение Airflow значительно упрощает понимание таких платформ, как Kubeflow, потому что их ключевые концепции очень похожи:
- DAG’и
- Оркестрация задач
- Выполнение пайплайнов и т.д.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2👍1
Когда FROM scratch-образа уже недостаточно 🤔

Тебе дали падающий контейнер – простой Go-сервер, который при получении запроса ходит в HTTPS API и проксирует ответ обратно клиенту.

Сможешь починить?
https://labs.iximiuz.com/challenges/when-from-scratch-image-is-not-good-enough

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Этот туториал показывает, как добавить observability в EKS-кластер: перейти на паттерн App of Apps в ArgoCD и развернуть kube-prometheus-stack с корректно настроенным EBS CSI driver и конфигурацией kubelet cAdvisor

Читайте тут

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3