TGViewer
Channel Public Channel
DevOps Portal | Linux

DevOps Portal | Linux

@loose_code

Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps

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

Работаем с @Spiral_Yuri

РКН: https://clck.ru/3P8kFH
Subscribers
13.1K
Photos
1K
Videos
134
Links
1.1K

Showing posts older than #1976 · Back to latest

Older Posts 20 shown
Post #1975 2.18K

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
Post #1974 2.7K
Как собрать мультиплатформенный контейнерный образ из отдельных одноплатформенных сборок?

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

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

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

👉 DevOps Portal
  • ❤ 4
Post #1973 3.06K
Прокачайте навыки работы с 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
  • 👍 9
  • ❤ 4
  • 🤯 2
Post #1971 2.4K
Небольшой совет по Linux

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

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

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

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

👉 DevOps Portal
  • ❤ 17
  • 👍 10
  • 🌚 4
Post #1968 2.62K
Linux 101: монтируем диск с уже записанными данными и читаем его содержимое

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

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

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

👉 DevOps Portal
  • ❤ 6
Post #1967 2.71K
Компьютерные сети 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
  • ❤ 3
  • 🔥 3
Post #1966 2.58K
В этом руководстве показано, как построить SaaS-архитектуру с отдельным окружением для каждого пользователя в EKS Auto Mode: один pod, один поддомен и один persistent volume на пользователя, wildcard TLS и общий ALB.

➜ Читайте тут

👉 DevOps Portal
  • ❤ 4
Post #1964 2.51K
Как работает сетевая подсистема контейнеров

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

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

👉 DevOps Portal
  • ❤ 4
  • 🔥 3
Post #1962 2.5K
Большинство пользователей Kubernetes до сих пор не знают о существовании этого типа томов

Он называется ImageVolume.

Вот как он работает

Функция Image Volume позволяет использовать OCI-образы в качестве томов непосредственно внутри Pod’ов Kubernetes.

Что такое OCI-образы?

Это стандартизированный формат, который определяет структуру контейнерных образов.

С помощью ImageVolume можно хранить в образах файлы моделей, бинарные файлы, конфигурации и другие данные, а затем монтировать их в Pod’ы.

Вот практическое руководство, в котором показано, как работает эта функция и как её использовать.

Полезная возможность, о которой стоит знать.

https://devopscube.com/oci-image-volume-kubernetes-pods/

Примечание: ImageVolume подходит для любых workload’ов, которым удобно поставлять данные внутри образа: файлы моделей, датасеты, конфигурации, статические ресурсы и даже инструменты.


👉 DevOps Portal
  • ❤ 5
  • 👍 3
  • 🥱 1
Post #1961 2.81K
Radar обеспечивает наглядное представление Kubernetes-кластера с помощью топологических графов, таймлайнов событий и визуализации трафика между сервисами.

Инструмент распространяется в виде одного бинарника, напрямую подключается к Kubernetes API и не требует установки компонентов внутри кластера.

➜ https://github.com/skyhook-io/radar

👉 DevOps Portal
  • ❤ 6
  • 🔥 4
Post #1959 2.54K
Создаём контейнер наподобие Docker с нуля

Освойте ключевые пространства имён Linux, собрав небольшой, но реалистичный контейнер, используя только штатные команды Linux: unshare, mount и pivot_root. Никакой магии рантайма и (почти) никаких упрощений.

Изучаем здесь

👉 DevOps Portal
  • 👍 4
  • ❤ 3
Post #1957 2.41K
Большинство инструментов безопасности для Kubernetes лишь уведомляют о проблеме уже после того, как она произошла.

KubeArmor работает иначе.

Это опенсорсный инструмент безопасности, который на уровне ядра контролирует, какие процессы могут запускаться, к каким файлам можно обращаться и какие сетевые запросы разрешены внутри ворклоадов.

Вместо простого алерта он блокирует действие ещё до его выполнения.

Что умеет KubeArmor

— Блокирует неожиданный запуск процессов или доступ к файлам внутри пода ещё до того, как это произойдёт.
— Применяет принцип минимально необходимых прав с помощью вайтлистинга процессов и сетевых подключений для каждого ворклоада.
— Ограничивает доступ к чувствительным путям, например к бандлам сертификатов и секретам, чтобы их нельзя было прочитать или изменить.
— Применяет политики харденинга, сопоставленные с MITRE, CIS и STIG, без необходимости писать их самостоятельно.
— Обеспечивает детальную видимость происходящего в рантайме с помощью eBPF, включая информацию о подах, контейнерах и неймспейсах.

https://github.com/kubearmor/KubeArmor

👉 DevOps Portal
  • ❤ 4
  • 👍 1
  • 😁 1
Post #1956 2.35K
Нативные sidecar-контейнеры в Kubernetes

Sidecar — это вспомогательный процесс, который запускается рядом с основным приложением. Такой паттерн удобен, когда дополнительную функциональность лучше подключить отдельно: например, сетевой прокси, сборщик и отправщик логов, коллектор метрик или агент, который загружает секреты.


Основная сложность - правильно управлять жизненным циклом sidecar-контейнера: он должен запускаться раньше приложения, продолжать работать вместе с ним, перезапускаться при неожиданном завершении и останавливаться только после завершения самого приложения.

Раньше для реализации паттерна sidecar приходилось писать собственные скрипты, но нативная поддержка sidecar-контейнеров в Kubernetes через init-контейнеры с restartPolicy: Always заметно упростила этот процесс.

В этом практическом туториале рассказывают, как работают нативные sidecar-контейнеры в Kubernetes, чем они отличаются от обычных и init-контейнеров, а также как попрактиковаться в их использовании на нескольких реалистичных сценариях:
https://labs.iximiuz.com/tutorials/kubernetes-native-sidecars

👉 DevOps Portal
  • 👍 5
  • ❤ 2
Post #1955 2.47K
У небольших команд GPU-запросы очень прикладные:

прогнать модель, ускорить рендер, обработать тяжелые данные. Дальше DevOps раскладывает задачу на рабочие параметры — модель GPU, количество карт на сервер, срок запуска, питание, SLA, формат доступа к ресурсу.

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

Из свежего, и пока мало кто в курсе — Московский кластер видеоигр и анимации начал сдавать в аренду выделенные GPU. Посмотрел, что там по конфигурации 👇

Из карт — H100 и RTX Ada 5000/6000, от 1 до 8 GPU на сервер, ресурс закрепляется за арендатором. Закрывает AI/ML, LLM, inference, 3D/Render, VDI.

Если нужен не отдельный GPU-сервер, а колокейшн — там же от 1U до полной стойки 42U на 10 кВт (можно расширить до 20), два независимых ввода питания на стойку.

Цены конкурируют с коммерческими ЦОДами — площадку субсидирует город.

👉 DevOps Portal
Московский кластер видеоигр и анимации Центр обработки данных — Кластер видеоигр и анимации Надёжный ЦОД для игровых студий, ML-команд и медиапроизводства. 21 стойка, 400+ кВт, SLA 99,95%.
  • ❤ 6
  • 👍 2
  • 🔥 2
Post #1954 2.91K
DevOps-инструмент недели: Inspektor Gadget

При работе с Kubernetes возможности eBPF позволяют видеть каждый системный вызов (syscall) и каждый сетевой пакет на уровне ядра Linux. Но сама по себе эта информация не отвечает на главный вопрос: какому Pod, контейнеру или Namespace принадлежит событие?

Именно эту проблему решает Inspektor Gadget — open-source инструмент для диагностики и отладки Kubernetes-кластеров и Linux-хостов на базе eBPF.

Он автоматически связывает события ядра с объектами Kubernetes, что значительно упрощает поиск проблем. Что умеет Inspektor Gadget?

В режиме реального времени отслеживает:
• DNS-запросы;
• TCP-соединения;
• открытие файлов;
• запуск процессов внутри контейнеров.

Захватывает сетевые пакеты внутри любого контейнера с использованием фильтров в стиле tcpdump (pcap).

Позволяет мгновенно обнаруживать:
• OOM Kill;
• потерю TCP-пакетов;
• TCP Retransmissions;
• другие проблемы на уровне ядра.

Фильтрует события по имени Pod или контейнера, причём фильтрация выполняется непосредственно в ядре, что минимизирует накладные расходы.

Помогает автоматически генерировать:
• Seccomp Profiles;
• Kubernetes NetworkPolicies
• на основе реального поведения приложений во время выполнения.
Важно: Inspektor Gadget запускается как privileged DaemonSet, поскольку eBPF требует доступа к ядру Linux. Для многопользовательских кластеров рекомендуется использовать встроенные механизмы ограничения запуска отдельных gadgets.

GitHub: https://github.com/inspektor-gadget/inspektor-gadget

👉 DevOps Portal
  • ❤ 6
  • 🔥 5
Post #1952 2.65K
zeropod — это инструмент, который автоматически сохраняет состояние контейнеров на диск через заданное время после последнего TCP-подключения, позволяя быстро и бесшовно масштабировать их до нуля.

https://github.com/ctrox/zeropod

👉 DevOps Portal
  • 👍 4
  • ❤ 3
Post #1950 2.88K
Быстрый Linux-совет

Нужен только один столбец из файла?

Выполните:
cut -d',' -f2 ~/Desktop/members.csv


Команда cut извлекает из текстовых файлов указанные поля или символы.

👉 DevOps Portal
  • ❤ 6
  • 👍 3
Post #1949 2.89K
Linux для контейнеров: network namespaces

Network namespaces позволяют Docker и Kubernetes создавать для приложений иллюзию, что они работают в отдельном сетевом окружении: с изолированным набором сетевых устройств, IP-адресов, правил роутинга и т.д.

Разберитесь, как работают netns: https://labs.iximiuz.com/challenges/linux-network-namespace

👉 DevOps Portal
  • 👍 4
  • ❤ 3
Post #1947 2.85K
Чем MLOps отличается от привычных DevOps-процессов?

MLOps отличается от классических DevOps-процессов так же, как машинное обучение отличается от традиционной разработки ПО.

Например:

В SDLC мы управляем жизненным циклом кода.

MDLC добавляет ещё два измерения — данные и модели.

Поэтому в MLOps приходится отслеживать уже три компонента: код, данные и модели.

В классическом DevOps вы работаете только с кодом.

Именно поэтому MLOps-системы сложнее деплоить и сопровождать.

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

Подробный роадмап: https://devopscube.com/devops-to-mlops/

Кроме того, понимание основ MLOps закладывает прочную базу, если в дальнейшем вы хотите перейти к LLMOps и AI Infrastructure.

👉 DevOps Portal
  • ❤ 10
  • 👍 3
  • 🔥 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →