Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.68K photos
76 videos
4 files
3K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba56522d1787
Download Telegram
Снова спрашиваем вас, как в январе прошедшего года

Откуда в девопс пришли вы?

❤️ — Сисадмин
🔥 — Программист

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
44🔥17👾5
📎 Как дебажить distroless-контейнеры в Kubernetes

Осенью мы разбирали эту тему. Повторяем для тех, кто пропустил, и добавляем пару нюансов.

Проблема

Distroless-образы — это минимализм: только приложение и рантайм. Никакого bash, curl, apt. Меньше размер, меньше уязвимостей, быстрее деплой.
Но когда что-то падает — привычный kubectl exec -it pod -- bash не работает. Шелла просто нет.
Решение: эфемерные контейнеры.

Kubernetes умеет подключать временный контейнер к работающему Pod без рестарта:
kubectl debug pod/my-app -it --image=busybox --target=my-container


Эфемерный контейнер делит namespace с приложением — видит его файлы, процессы, сеть. После выхода исчезает.

Для серьёзной отладки лучше взять образ потяжелее:
kubectl debug pod/my-app -it --image=nicolaka/netshoot --target=my-container


netshoot — швейцарский нож для сетевой диагностики: curl, dig, tcpdump, iperf, nmap и ещё 40+ утилит из коробки.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
⛄️ Путь к мечте продолжается

Стас перенёс две операции на мозге. Сейчас восстанавливается. Параллельно учит C++, собирает портфолио, откликается на вакансии. История о том, что обстоятельства — не приговор.

➡️ Читать историю Стаса

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Job.managedBy стал GA в Kubernetes 1.35

Kubernetes v1.35 сделал стабильным поле .spec.managedBy в джобах. Теперь внешние контроллеры полностью берут на себя согласование заданий, отключая встроенный контроллер заданий. Это открывает межкластерное планирование через MultiKueue.

Управляющий кластер распределяет задания в рабочие кластеры, копируя статус обратно. Пользователи видят прогресс в реальном времени без доступа к рабочим узлам.

Встроенный контроллер пропускает задания с managedBy, оставляя стандартные нетронутыми. Поле неизменяемое, чтобы избежать осиротевших подов.

➡️ Блог разработчиков

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🔨 Как не сломать продакшен: 8 основных паттернов распределенных систем

Тогда мы делились статьей про восемь паттернов, которые помогают держать продакшен живым в распределенных системах.

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

➡️ Вспомнить паттерны

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Проекты для прокачки DevOps и Linux на праздники

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

Linux Upskill Challenge — челленджи для прокачки навыков работы с Linux.

OverTheWire Wargames — игровые задания по безопасности и Linux.

AWS Workshops — интерактивные воркшопы по AWS и DevOps.

KodeKloud Free Labs — бесплатные лабораторные работы для практики DevOps.

Sad Servers Scenarios — сценарии для тренировки администрирования.

Iximiuz Labs — практические задания для DevOps и безопасности.

DevOps Upskill Challenge — проекты и упражнения для изучения DevOps.

Engineer KodeKloud Practice — практические задачи по DevOps и облачным технологиям.

Cloud Resume Challenge — интересный проект по облачным навыкам и инфраструктуре.

Learn Git Branching — интерактивное обучение Git.

Play with Docker Labs — sandbox для экспериментов с Docker.

Kubernetes Goat — тренажёр для изучения Kubernetes.

DevOps Exercises by Bregman Arie — набор упражнений для практики.

DevOps Daily — ежедневные задачи и новости DevOps.

SRE Bootcamp Exercises — упражнения для SRE-инженеров.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
💻 Pod Resize без рестарта в k8s v1.35

Через 6 лет разработки фича In-Place Pod Resize вышла в GA. Меняйте CPU и память в запущенных подах без рестартов. spec.containers[].resources теперь желаемые ресурсы, status.containerStatuses[].resources показывает реальные. Запуск через resize subresource.

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

➡️ Блог разработчиков

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
SRE-агенты: автоматизация, о которой ты мечтал

Пока ты дежуришь в праздники, ИИ-агенты могут мониторить логи, выявлять аномалии и даже предлагать фиксы. Будущее DevOps в 2026-м — это оркестрация не только контейнеров, но и автономных агентов.

На курсе по AI-агентам мы научим:

— использовать паттерн ReAct для принятия решений агентами в инфраструктуре;
— оркестровать процессы в n8n для связки систем мониторинга и LLM;
— внедрять протокол MCP для обмена данными между инструментами;
— строить продвинутый RAG по документации и логам.

Выныривай из рутины. До 12 января действует акция «3 в 1»: курс по ИИ-агентам + 2 курса в подарок.

Стать AI-DevOps инженером
👍3
⚙️ Быстро измерить время запроса в curl

Мы уже показывали этот прием раньше, а сейчас напоминаем, потому что он отлично выручает, когда надо проверить API без браузера и лишних тулзов. Смысл простой, curl делает запрос и печатает только время выполнения через переменную time_total.

Пример:
curl -s -w "%{time_total}\n" -o /dev/null https://example.com


Опция -s делает режим silent без прогресс бара, а -o /dev/null выкидывает тело ответа, чтобы оно не мешало замеру. А -w или write out форматирует вывод и подставляет time_total, то есть общее время операции в секундах с дробной частью.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
SRE мечты в 2026-м: когда инциденты фиксит ИИ-агент

Пока вы празднуете, ваша мультиагентная система на базе n8n может анализировать аномалии в Kubernetes и предлагать исправления. В 2026-м DevOps — это не только YAML, но и управление агентами.

На курсе научим:

— внедрять паттерн ReAct для автономного траблшутинга;
— использовать MCP для связи агентов с вашим тулчейном;
— строить RAG по логам и документации проекта.

Проведите 2026 год спокойно.

🔥 До 12 января акция «3 в 1» — курс по ИИ-агентам + 2 курса в подарок.

Автоматизировать дежурства
💻 etcd 3.6: защита от зомби-нод

Сообщество etcd нашло неприятный баг: при апгрейде с v3.5 на v3.6 в кластере могут воскреснуть «зомби-участники» — узлы, которые давно удалили, но они внезапно возвращаются и ломают консенсус.

Безопасный путь обновления:

1. Сначала обновиться до etcd v3.5.26+
2. Убедиться, что все узлы здоровы
3. Только потом переходить на v3.6

➡️ Блог k8s

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤨 VS Code в Docker: зачем вообще так делать

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

Как настроить Visual Studio Code в Docker

Для настройки можно использовать гайд из статьи. Вот краткое руководство:

1. Создайте файл Dockerfile со следующим содержимым:
FROM ubuntu:latest

# Install prerequisites
RUN apt-get update && apt-get install -y \
curl \
wget \
sudo \
build-essential

# Install Code-Server (VS Code in the browser)
RUN curl -fsSL https://code-server.dev/install.sh | sh

# Expose port for Code-Server
EXPOSE 8080

# Start Code-Server on container launch
CMD ["code-server", "--bind-addr", "0.0.0.0:8080", "--auth", "none"]


2. Запустите контейнер и откройте порт 8080 для доступа

3. Откройте браузер и перейдите по адресу http://localhost:8080. Здесь вы сможете работать в Visual Studio Code.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
С каждой новостью про Windows 11 этот мем всё более и более актуальный🤩

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁4
💻 drop-in конфигурация kubelet теперь GA

Фича, которую ждали все, кто управляет гетерогенными кластерами: --config-dir теперь стабилен.

Вместо одного монолитного конфига kubelet теперь можно разложить настройки по файлам в директории. Kubelet сам их смержит в нужном порядке.

Как это работает:
/etc/kubernetes/kubelet.conf.d/
├── 00-base.conf # базовые настройки для всех нод
├── 50-gpu-nodes.conf # оверрайды для GPU-нод
├── 50-edge-nodes.conf # оверрайды для edge-нод
└── 99-experimental.conf # тестовые фичи


Файлы применяются в алфавитном порядке — поэтому числовые префиксы.

Как посмотреть итоговый конфиг:
kubectl proxy &
curl http://127.0.0.1:8001/api/v1/nodes/<node>/proxy/configz | jq


➡️ Блог разработчиков

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚡️ Redis — не единственный: 3 альтернативы, которые стоит знать

Redis отлично справляется с кэшированием, хранением сессий и очередями сообщений. Но иногда другие инструменты подходят лучше.

🐉 Dragonfly

Современный drop-in replacement для Redis с акцентом на производительность. Использует многопоточную архитектуру и вертикальное масштабирование — один инстанс Dragonfly может заменить кластер Redis.

Когда выбрать: высоконагруженные системы, где важна экономия ресурсов. Совместим с Redis API, миграция минимальна.

🔑 KeyDB

Форк Redis с многопоточностью «из коробки». Развивается Snap и сохраняет полную совместимость с Redis, включая Lua-скрипты и модули.

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

💾 Memcached

Ветеран in-memory кэширования. Делает одну вещь — и делает её хорошо. Минимум накладных расходов, предсказуемая latency.

Когда выбрать: чистое кэширование без pub/sub, персистентности и сложных структур данных. Проще в эксплуатации, меньше потребляет памяти на единицу данных.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
💻 Строгий контроль групп в Kubernetes 1.35

Фича, которая закрывает неочевидную дыру в безопасности — теперь стабильна.

Kubernetes по умолчанию мержит группы из Pod-манифеста с группами из /etc/group внутри образа контейнера. Это происходит неявно.

Пример: вы указали в Pod runAsUser: 1000, supplementalGroups: [4000]. Запускаете id — а там ещё и группа 50000, которую вы не указывали. Откуда? Из /etc/group в образе, где пользователь 1000 состоит в этой группе.

Решение — новое поле supplementalGroupsPolicy:
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
supplementalGroups: [4000]
supplementalGroupsPolicy: Strict # ← вот оно


Бонус: теперь в status.containerStatuses[].user.linux видно реальные UID/GID процесса — можно аудитить.

➡️ Блог k8s

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
💻 Простая команда для контейнеров

Возвращаемся к теме — базовая вещь, но новички часто спотыкаются. Собираете образ, запускаете — а контейнер не может сходить по HTTPS. curl ругается на сертификаты, git clone падает, API недоступны.

Один RUN в Dockerfile, который и обновляет, и защищает, и чистит. Делайте так и забудьте про SSL-ошибки и мусор в образах:
RUN apt-get update && apt-get install -y ca-certificates && update-ca-certificates && rm -rf /var/lib/apt/lists/*


Разбираем пошагово:

1. apt-get update
Обновляет кэш доступных пакетов. Это обязательно перед установкой любого ПО через apt-get, иначе система не узнает о последних версиях.

2. apt-get install -y ca-certificates
Устанавливает набор корневых SSL-сертификатов удостоверяющих центров (CA), которым система может доверять. Без них HTTPS-соединения могут не работать — будь то curl, wget, git clone, или подключение к внешним API.

3. update-ca-certificates
Обновляет список доверенных сертификатов в системе. Этот шаг необходим, особенно если вы добавляете свои собственные .crt файлы.

4. rm -rf /var/lib/apt/lists/*
Удаляет французский язык кэшированные списки пакетов, чтобы минимизировать размер итогового Docker-образа. Это best practice для продакшн-сборок, где каждый мегабайт имеет значение.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#лучшее_из_библиотеки_2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💻 Workload Aware Scheduling — планировщик наконец понимает, что такое ворклоад

Большой шаг для AI/ML нагрузок: kube-scheduler теперь умеет планировать группы подов как единое целое.

Когда запускаете ML-джобу на 8 воркеров — scheduler планирует каждый под отдельно. Результат: 5 подов запустились, 3 ждут ресурсов. Джоба не работает, но ресурсы заняты. Deadlock.

Решение — новый Workload API + Gang Scheduling:
apiVersion: scheduling.k8s.io/v1alpha1
kind: Workload
metadata:
name: training-job
spec:
podGroups:
- name: workers
policy:
gang:
minCount: 4 # все 4 или никто


Как работает gang scheduling:

1. Поды блокируются, пока не наберётся minCount
2. Scheduler ищет места для всей группы
3. Нашёл для всех → все стартуют одновременно
4. Не нашёл за 5 минут → все отклоняются и идут обратно в очередь

➡️ Блог разработчиков

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
3