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

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

Работаем с @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Download Telegram
Как работает сетевая подсистема контейнеров

Большинство Docker-инсталляций и Kubernetes-кластеров используют одинаковую схему сетей на основе мостов. Как лучше всего разобраться, как это устроено?

Попробуйте воссоздать такую сетевую конфигурацию с нуля, используя только стандартные Linux-команды: https://labs.iximiuz.com/tutorials/container-networking-from-scratch

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3
В этом руководстве показано, как построить SaaS-архитектуру с отдельным окружением для каждого пользователя в EKS Auto Mode: один pod, один поддомен и один persistent volume на пользователя, wildcard TLS и общий ALB.

➜ Читайте тут

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Компьютерные сети 101: сокеты

Лучший способ понять, что такое сокеты и как они работают - написать несколько простых клиент-серверных программ. Хорошая новость: для этого достаточно нескольких строк на Python или Go. А если хочется испытать себя, попробуйте C - кода будет больше, зато вы окажетесь максимально близко к реальному системному API.

Несколько задач для практики в безопасном и контролируемом окружении с полезными подсказками:

— Написать простой TCP Echo-сервер
https://labs.iximiuz.com/challenges/write-tcp-echo-server

— Задача попроще: написать клиент для сервера телеметрии
https://labs.iximiuz.com/challenges/write-tcp-client-for-telemetry-server

— Задача посложнее: написать клиент для чат-сервера
https://labs.iximiuz.com/challenges/write-tcp-client-for-chat-server

— Сделать сервер, который работает и с TCP-, и с Unix-сокетами
https://labs.iximiuz.com/challenges/write-stream-echo-server


Удачного хакинга!

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3
Linux 101: монтируем диск с уже записанными данными и читаем его содержимое

Практика по работе с накопителями в Linux:

1. Найти неподключённый диск
2. Примонтировать его к директории в корневой файловой системе
3. Найти флаг на примонтированном диске

Практическое задание: https://labs.iximiuz.com/challenges/storage-simple-mount

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6
В этом репозитории собрано более 20 инструментов, которые автоматически генерируют архитектурные диаграммы Kubernetes на основе манифестов, Helm-чартов или текущего состояния кластера.

https://github.com/philippemerle/Awesome-Kubernetes-Architecture-Diagrams

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшой совет по Linux

При создании новой директории часто приходится выполнять:
$ mkdir project
$ cd project

Эти два шага можно объединить в одну команду:
$ mkdir app && cd $_

Переменная $_ разворачивается в последний аргумент предыдущей команды, которым в данном случае является app.

Небольшой трюк, который позволяет сэкономить несколько нажатий клавиш при работе в терминале

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍10🌚4
Прокачайте навыки работы с Kubernetes на реалистичных сценариях:

Создать собственный PriorityClass и назначить его рабочей нагрузке
https://labs.iximiuz.com/challenges/create-and-assign-a-custom-priorityclass-to-a-workload-b3699c08

Расширить кластер дополнительным диапазоном Service CIDR для команды разработки
https://labs.iximiuz.com/challenges/extend-the-cluster-with-an-additional-service-cidr-for-the-dev-team-5251bc66

Включить отдельные DNS-записи для каждого Pod в Deployment
https://labs.iximiuz.com/challenges/enable-per-pod-dns-records-for-deployment-1c6a4201

Разобраться, почему Pod’ы приложения-календаря со списком задач зависли в состоянии Pending
https://labs.iximiuz.com/challenges/troubleshoot-why-the-calendar-todo-app-pods-are-stuck-in-pending-9f571aa2

Повторно подключить сохранённый PV с помощью нового PVC и восстановить потерянную базу данных MariaDB
https://labs.iximiuz.com/challenges/reclaim-retained-pv-with-new-pvc-and-restore-lost-mariadb-database-783fe3ae

Настроить обязательное использование TLS для продакшен-Deployment с Nginx
https://labs.iximiuz.com/challenges/enforce-tls-policy-on-production-nginx-deployment-a9190dec

Подключить конфигурационный файл, не перезаписывая существующую директорию из образа
https://labs.iximiuz.com/challenges/inject-configmap-file-without-overwriting-existing-directory-23bcc10e

Закрепить клиента за одним и тем же Pod с помощью Session Affinity в Service
https://labs.iximiuz.com/challenges/pin-a-client-to-the-same-pod-using-service-session-affinity-6b19b89f

Настроить Health Probes и корректное завершение работы для Kubernetes Deployment
https://labs.iximiuz.com/challenges/configure-health-probes-and-graceful-shutdown-kubernetes-deployment-90e57daa


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🤯2
Как собрать мультиплатформенный контейнерный образ из отдельных одноплатформенных сборок?

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

К счастью, отдельные одноплатформенные сборки можно сшить в один мультиплатформенный образ, аккуратно работая с индексом образа.

Разобраться в магии этого процесса можно здесь:
https://labs.iximiuz.com/challenges/docker-push-multi-platform-image

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Forwarded from Мир Linux
DevOps-инструмент недели: HAMi

Обычно Kubernetes-кластер выделяет целый GPU под одну рабочую нагрузку.

В результате часть ресурсов GPU простаивает.

HAMi решает эту проблему.

Это опенсорс middleware для Kubernetes, которое позволяет распределять, изолировать и планировать GPU и другие AI-ускорители между Pod’ами без изменений в коде приложения.

Что умеет HAMi:

- Делит один GPU на несколько частей по объёму памяти, количеству ядер или числу устройств
- Задаёт жёсткие лимиты памяти и вычислительных ресурсов для каждой рабочей нагрузки, чтобы один Pod не мог занять ресурсы другого
- Оптимально распределяет задачи по GPU: уплотняет их для экономии ресурсов или разносит по разным устройствам, чтобы избежать снижения производительности
- Управляет NVIDIA GPU, NPU, DCU, MLU и другими типами ускорителей через единый механизм планирования
- Позволяет запускать мультитенантные задачи обучения, инференса и среды с ноутбуками в общем пуле GPU

GitHub: https://github.com/Project-HAMi/HAMi

@linuxos_tg
6🔥1
В качестве движка выполнения пайплайнов Kubeflow Pipelines использует Argo Workflows.

Это Kubernetes-native движок оркестрации DAG.

Что именно это означает?

DAG (Directed Acyclic Graph, направленный ациклический граф) описывает задачи и зависимости между ними.

Например:

- Сначала выполняется задача A
- После A запускаются задачи B и C
- Задача D запускается только после завершения B и C

Самое интересное — как Argo выполняет эти задачи.

В большинстве инструментов DAG описываются на Python.

В Argo DAG задаётся декларативно в YAML в виде CRD, а каждую задачу Argo выполняет как отдельный Kubernetes Pod.

Kubeflow использует Argo Workflows в качестве бэкенда и добавляет поверх него слой для задач AI/ML.

При работе с Kubeflow Pipelines вместо того, чтобы напрямую писать YAML-манифесты Argo Workflow, пайплайны нужно описывать в виде DAG на Python.

Для ML-команд это значительно удобнее, чем поддерживать сотни строк YAML с Kubernetes CRD.

Kubeflow SDK компилирует описание пайплайна на Python в YAML в формате Intermediate Representation (IR).

Затем оно преобразуется в специфичное для Argo описание и передаётся на выполнение.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Webernetes — браузерный симулятор Kubernetes, который позволяет запускать ограниченный набор возможностей Kubernetes, включая Pod, Service и Deployment, полностью в браузере и без какой-либо бэкенд-инфраструктуры.

https://github.com/ngrok/webernetes

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3
Kubeflow — это уже не просто MLOps-платформа.

Она развивается в полноценную cloud-native AI-платформу для:

• распределённого обучения AI-моделей
• дообучения LLM
• GenAI-пайплайнов
• AI-воркфлоу в Kubernetes

Если вы DevOps-инженер и хотите перейти в AI-инфраструктуру, Kubeflow — одна из лучших платформ, которые стоит изучать сегодня.

В последних релизах Kubeflow расширилась поддержка GenAI-сценариев, распределённого обучения и современных воркфлоу для AI-платформ.

Как лучше всего разобраться?

Собрать всё самостоятельно.

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

развернуть Kubeflow Pipelines в Kubernetes
создавать пайплайны с помощью Kubeflow SDK
запускать пайплайны и отслеживать их выполнение

- https://devopscube.com/setup-kubeflow-pipelines-kubernetes/

Если вы только начинаете знакомство с Kubeflow, сначала изучите этот материал:

- https://devopscube.com/kubeflow-pipelines/

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
В этой статье показано, как использовать Kubernetes ConfigMap в качестве лёгковесного хранилища состояния в реальном времени: отслеживать изменения ConfigMap и распределять события с помощью Python asyncio.

https://medium.com/sahibinden-technology/using-kubernetes-configmaps-as-a-real-time-state-store-483c47ee23cd

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Паттерны проброса портов в Kubernetes

Ты находишься внутри dev-кластера, доступ к сети ограничен, и сервис, который ты только что задеплоил, ведёт себя странно.

Нет ни LoadBalancer, ни настроенного ingress-контроллера, и «просто открыть порт» – не вариант, потому что сетевики либо тормозят, либо отвечают отказом.

Вот здесь тебя и выручает kubectl port-forward.

Вот простая инфографика, чтобы было легче понять.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшой совет по работе с командной строкой Linux

Чтобы скрыть каталоги . и .., но при этом показать остальные скрытые файлы и директории, используйте:
ls -A

вместо:
ls -a


👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥104👍1
Запуск распределённого обучения ИИ в Kubernetes – это не просто добавление GPU

В выпуске Kubeflow Pipelines рассказывали, что этап обучения в пайплайне обычно передаётся Kubeflow Trainer.

И вот почему.

Некоторые задачи обучения ML-моделей и дообучения LLM требуют нескольких GPU, распределённых между несколькими нодами Kubernetes.

Для этого необходимо:

— создавать и управлять несколькими worker-подами;
— выделять GPU-ресурсы;
— настраивать взаимодействие между воркерами;
— отслеживать статус обучающих джобов и многое другое.

Kubeflow Trainer решает эти задачи в Kubernetes-native формате с помощью CRD и скрывает большую часть связанной с этим сложности.

В этом выпуске MLOps-рассылки разобрали:

— основы распределённого обучения;
— архитектуру Kubeflow Trainer: TrainJob, Runtimes и JobSet;
— установку Trainer и запуск первого распределённого TrainJob на CPU-нодах;
— запуск ML-задач на GPU-нодах;
— каким моделям действительно нужны GPU.

Читать: https://newsletter.devopscube.com/p/kubeflow-trainer

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Вышел годный инструмент, который помогает изучать Linux на практике

Shell Gym – интерактивный тренажёр командной строки Linux, созданный на основе многолетнего опыта преподавания. По сути, автор выделил ядро iximiuz Labs и превратил его в отдельный демон.

https://github.com/iximiuz/shellgym

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
Большинство считает, что Kubernetes Gateway API предназначен только для Ingress. Но это не так.

Gateway API также умеет управлять east-west-трафиком – то есть взаимодействием между сервисами. Разберёмся, как это работает

Для начала нужно понять, что такое инициатива GAMMA.

GAMMA — Gateway API for Mesh Management and Administration

Изначально Gateway API был разработан для управления ingress-трафиком.

То есть трафиком, который поступает извне кластера к сервисам внутри него – это сценарий north-south.

GAMMA расширяет возможности Gateway API на внутренний трафик service mesh – то есть на east-west-трафик.

Это означает, что одни и те же ресурсы Gateway API можно использовать как для Ingress, так и для service mesh.
Но есть важное отличие 👇

Обычно при использовании таких ресурсов Gateway API, как HTTPRoute, GRPCRoute и других, в качестве parentRef указывается Gateway.

Именно Gateway является точкой входа, которой принадлежат IP-адрес и порты, принимающие трафик извне кластера.

Однако в подходе GAMMA при настройке mesh-трафика ресурсы Gateway API, например HTTPRoute, могут использовать в качестве parentRef не Gateway, а Service.

После этого HTTPRoute определяет, как должен маршрутизироваться трафик, поступающий на этот Service: распределение по весам, разделение трафика и другие правила.

Схема прохождения трафика выглядит так:

client → общий Service (backend) → Services отдельных версий (backend-v1, backend-v2) → pods

При этом нельзя использовать паттерн «общий Service + subsets», как в связке Istio VirtualService и DestinationRule.

Причина в том, что Gateway API проектируется как единый стандарт, который должен работать с разными реализациями service mesh, включая Istio, Linkerd и другие.

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3
В этой статье рассказывается, как спроектировать ИИ-агента для SRE-задач, который анализирует алерты, логи, данные Kubernetes, ранбуки, деплои и сигналы систем наблюдаемости, чтобы диагностировать инциденты и предлагать безопасные действия.

Читайте тут

👉 DevOps Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
Forwarded from Мир Linux
🍻 Сегодня отмечается день системного администратора 🍻

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

В 2026 году этот день выпал на 31 июля.

Поздравляем всех сисадминов с праздником!

@linuxos_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥7