DevOps
8.79K subscribers
1.39K photos
880 videos
28 files
1.74K links
Docker, Kubernetes, облачные сервисы (AWS, GCP, Azure), Infrastructure as a Code (Terraform, CloudFormation), администрирование Windows и Linux, сети TCP, IP, скрипты (Bash, PowerShell), Ansible, Jenkins, DevSecOps, логирование. По вопросам @evgenycarter
Download Telegram
Buildg - Интерактивный отладчик для Dockerfile, с поддержкой IDE (VS Code, Emacs, Neovim и т.д.).

Source-level inspection
Breakpoints and step execution
Interactive shell on a step with your own debugigng tools
Based on BuildKit (with unmerged patches)
Supports rootless

https://github.com/ktock/buildg

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Работа с правами доступа файлов и директорий в Linux

# chown vasya /file
Назначить пользователя vasya владельцем файла file
# chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /file
Назначить владельца и группу для файла /file
# chmod ugo+rwx /directory
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directory
Удалить все права на директорию /directory для группы и остальных
# chgrp new_group file
Изменить группу-владельца для file на new_group
# chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/public
Установить SGID-бит на директории /home/public
# chmod g-s /home/public
Удалить SGID-бит с директории /home/public
# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lh
Листинг текущего каталога с правами доступа

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
📈Picosnitch - мониторинг сетевого трафика на каждый исполняемый файл с помощью BPF

Получение уведомлений при подключении к сети новой программы или при ее изменении

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

При желании можно проверить хэши или исполняемые файлы с помощью VirusTotal

Хеши исполняемых файлов кэшируются на основе устройства + inode для повышения производительности и работают с приложениями, запущенными в контейнерах

Используется BPF для точного мониторинга пропускной способности с низкими накладными расходами и fanotify для контроля исполняемых файлов на предмет модификации

Поскольку приложения могут вызывать других пользователей для отправки/получения данных для них, родительский исполняемый файл и хэш также регистрируются для каждого соединения

Прагматичный и минималистичный дизайн, сфокусированный на точном обнаружении с четким сообщением об ошибке, когда это невозможно

https://github.com/elesiuta/picosnitch

https://elesiuta.github.io/picosnitch/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Armadа — это open-source система для управления заданиями (job scheduling) в Kubernetes кластерах. Она ориентирована на высокопроизводительные вычисления (HPC) и работу с большими кластерами.

🔹 Основные идеи:

- Очереди: задания распределяются через очереди с гибкими правилами приоритизации.
- Масштабируемость: поддержка тысяч узлов и миллионов заданий.
- Интеграция с Kubernetes: Armada выступает как надстройка над существующими кластерами.
- Справедливое распределение ресурсов: балансировка между пользователями и проектами.
- gRPC API: для отправки и управления заданиями.

Архитектура включает Armada server (центральный сервис с API и логикой очередей) и executor (компонент, работающий в Kubernetes-кластере и запускающий задания). Таким образом, можно подключать несколько кластеров к одному серверу Armada.

Использование Armada позволяет запускать распределённые вычисления, ML-задачи и batch-ворклоады в больших инфраструктурах, где стандартных возможностей Kubernetes недостаточно.

https://github.com/armadaproject/armada

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вопросы с собеседования

df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?

Когда файл удален т. к. файловый дескриптор «держит» его.

Ищем файл через:

lsof -a +L1 | grep var | grep httpd

При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.

Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
Что такое Docker? В чем отличие контейнера от образа?

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации.

Образ — шаблон приложения, который содержит слои файловой системы в режиме "только-чтение".

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

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Больше не нужен рестарт: как Kubernetes позволяет менять ресурсы контейнеров «на лету»

Теперь ресурсы контейнеров в Kubernetes можно менять «на лету» — без перезапуска и простоев. В статье рассказываем, как работает in-place resize, где эта функция реально спасает приложения от перегрузки и какие ограничения стоит учитывать на практике.

https://habr.com/ru/companies/flant/articles/936724/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Открытый урок «Деплой на стероидах: ускоряем доставку через Золотой путь (Golden Path)»

🗓 18 мая в 20:00 МСК

🆓 Бесплатно. Урок в рамках старта курса «Инженер платформенной инфраструктуры» от Otus.

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

На вебинаре разберём концепцию Golden Path — готовых шаблонов и стандартов, которые позволяют запускать сервисы быстро, безопасно и одинаково для всех команд.

На вебинаре разберем:
- Почему деплой замедляет команды
- Что такое Golden Path и зачем он нужен
- Как стандартизировать запуск сервисов
- Роль шаблонов, CI/CD и developer portal
- Как сократить время запуска нового сервиса
- Частые ошибки при внедрении Golden Path

🔗 Ссылка на регистрацию: https://vk.cc/cXIbuv

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Объясните концепцию Ingress в Kubernetes

Ingress — это объект API Kubernetes, который используется для предоставления маршрутов HTTP и HTTPS извне кластера к сервисам внутри кластера. Это обеспечивает единую точку входа в кластер, позволяет более просто управлять приложениями и устранять проблемы с маршрутизацией.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Объясните, что такое диспетчер облачного контроллера.

Cloud Controller Manager позволяет связать кластер с API облачного провайдера. Cloud-controller manager позволяет поставщикам облачных услуг развиваться независимо от основного кода Kubernetes, абстрагируя специфичный код. Это позволяет поставщикам облачных услуг разрабатывать и поддерживать свой код независимо от основного кода Kubernetes.

Используя CCM, облачные операции, такие как создание и управление балансировщиками нагрузки, томами блочного хранения и облачными сетевыми ресурсами, могут выполняться бесперебойно в кластере Kubernetes. Это позволяет пользователям использовать преимущества как Kubernetes, так и облачного провайдера, сводя к минимуму потенциальные проблемы совместимости.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚀 Kubernetes операторы: зачем они нужны?

Если ты когда-нибудь настраивал stateful сервисы в Kubernetes (Postgres, Kafka, Elasticsearch и т.д.), то знаешь: манифесты Deployment/StatefulSet сами по себе редко закрывают все потребности. Нужен кто-то, кто будет следить за жизненным циклом приложения: бэкапы, апгрейды, реплики, восстановление.

Вот тут и появляются Operators.

Оператор — это контроллер, который расширяет Kubernetes API и умеет управлять сложными приложениями как «живым организмом». По сути, он кодирует опыт SRE/админа внутри кластера.

Как это работает?

1. Создаётся CustomResourceDefinition (CRD) - новый объект в Kubernetes (например, PostgresCluster).
2. Пишется контроллер, который следит за этим объектом и выполняет нужные действия (инициализация БД, настройка реплик, обновления).
3. Ты как DevOps просто применяешь YAML с описанием кластера, а оператор сам делает всю грязную работу.

Примеры операторов

Zalando Postgres Operator — управляет кластерами PostgreSQL.
Strimzi - Kafka в Kubernetes.
Prometheus Operator - автоматизация деплоя Prometheus + Alertmanager.

Почему это круто?

-Снижается рутина → не нужно писать километры bash-скриптов.
-Упрощается управление → вместо «кучи манифестов» ты работаешь с одним объектом.
-Автоматизация best practices → разработчики операторов уже заложили правильные сценарии.


#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
Наглядное руководство по туннелированию SSH и переадресации портов

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

Темы:
🔵сценарии использования
🔵конфигурация
🔵SSH jumphosts
🔵локальная/удаленная/динамическая переадресация портов и ограничения

https://i-odmin.ru/nagljadnoe-rukovodstvo-po-tunnelirovaniju-ssh-i-pereadresacii-portov/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
🎥 Вебинар: «Основы Kubernetes: архитектура и абстракции»

О чём поговорим:
- Ключевые компоненты Kubernetes: контейнеры, поды, ноды, сервисы и их взаимодействие.
- Как в Kubernetes происходит развертывание и управление микросервисами.
- Принципы масштабируемости, отказоустойчивости и безопасности в Kubernetes.
- Реальные кейсы использования Kubernetes для DevOps и архитекторов.

Что вы получите:
- Фундаментальное понимание структуры Kubernetes и его ключевых абстракций.
- Навыки работы с необычными объектами для развертывания и масштабирования приложений.
- Практические знания, которые можно сразу применить в работе.

👉 Для участия зарегистрируйтесь: https://vk.cc/cXO5y8
🎁 Все участники вебинара получат специальные условия на полное обучение курса «Инфраструктурная платформа на основе Kubernetes»

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍1
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Как допилить GitLab CI/CD и перестать переписывать пайплайны

Меня зовут Роман Волков, я Senior DevOps в МТС Web Services. Последние несколько лет мне приходилось создавать и адаптировать конвейеры на базе GItLab-CI, изменяя процесс автоматизации под каждую новую команду, стек, продукт и окружения эксплуатации. Чтобы облегчить жизнь себе и коллегам, я сделал небольшой внутренний фреймворк — FundaPipe, значительно упрощающий создание, развитие, переиспользование и применение самих конвейеров разработчиками.

https://habr.com/ru/companies/ru_mts/articles/938704/

#devops #девопс

📲 Мы в MAX

Подпишись 👉@i_DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2