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

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

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Download Telegram
Компьютерные сети 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
This media is not supported in your browser
VIEW IN TELEGRAM
Kuber Community Day возвращается

30 июля в Москве все неравнодушные к технологии встречаются на инженерной конференции Kuber Community Day.

На сцене выступят практики из Ænix, MWS, «Райффайзенбанка», «СберЗдоровья», «Лаборатории Числитель», «Почтатех», «Инфосистемы Джет», Hilbert Team и других компаний.

Что вас ждет:
доклады без маркетинга: 30 спикеров расскажут об использовании ИИ в Kubernetes, мониторинге контейнеров, обзоре инструментов экосистемы, получении сертификаций и пр.;
мастер-класс по созданию Kubernetes-оператора: в конце все участники задеплоят его в кластер Yandex Managed Kubernetes;
arch dating: короткие встречи с опытными специалистами, где можно обсудить технические и карьерные вопросы;
научпоп: рассказ о кибернетическом подходе к управлению сложностью от Александра Нозика, директора центра научного программирования.

Форматы: офлайн и онлайн.

Участие бесплатное, регистрация обязательна.
😁32🥱1
В этом репозитории собрано более 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👍8🌚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
👍84🤯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
5🔥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👍2
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
Ozon Tech опубликовал часть программы E-CODE. И по части инфраструктуры там такие бриллианты:

• опыт обмена множества кастомных схем доставки данных на единую платформу
• история крупной гибридной инфры, мигрировавшей в K8-s
• анатомия хранилища артефактов (и не одного — обещают вскрытие сразу семи решений)
• путь сетевого оборудования к декларативному описанию через DSL
• противостояние конечности облаков за счёт capacity management
• перевод кластеров под управлением Patroni с kube-api на etcdv3 без сплитбрейна

Озонтеховцы уже традиционно радуют серьёзным подходом к официальной части конфы. Ну а гастрофест и вечеринки — это уже на вкус и цвет. В этом году, кстати, заявлены ещё и DJ-сеты.

Короче, годная конфа. И если вы ещё не забили в календаре 12 и 13 сентября под E-CODE, пора этим заняться: https://ecode.ozon.tech/
👍2
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
👍74
Forwarded from infosec
• Друзья, пришло время провести очередной конкурс. На этот раз мы разыгрываем бумажную версию книги "The Ultimate Kali Linux Book" - это новое издание книги по изучению Kali Linux, которое перевели на русский язык.

• К слову, книга содержит более 800 страниц информации и будет полезна как новичкам, так и опытным специалистам.

Итоги подведём 8 августа в 10:00, при помощи бота, который рандомно выберет 8 победителей. Доставка для победителей бесплатная в зоне действия СДЭК. Удачи

Для участия нужно:

1. Быть подписанным на наш канал: Infosec.
2. Подписаться на канал наших друзей: Мир Linux.
3. Нажать на кнопку «Участвовать»;
4. Ждать результат.

Бот может немного подвиснуть — не переживайте! В таком случае просто нажмите еще раз на кнопку «Участвовать».

#Конкурс
Please open Telegram to view this post
VIEW IN TELEGRAM
Большинство считает, что 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🔥4