Какова распространенная причина сбоев запуска контейнеров в Kubernetes?
👾 — Поврежденные изображения
👍 — Неправильная конфигурация сети
🥰 — Недостаточно ресурсов
⚡️ — Все вышеперечисленное
Библиотека задач по DevOps
👾 — Поврежденные изображения
👍 — Неправильная конфигурация сети
🥰 — Недостаточно ресурсов
⚡️ — Все вышеперечисленное
Библиотека задач по DevOps
⚡9
Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇
Forwarded from Proglib.academy | IT-курсы
Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности
На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Где расположен крупнейший кластер центров обработки данных AWS?
👾 — Лос Анжелес
👍 — Северная Вирджиния
🥰 — Лаг Вегас
⚡️ — Нью-Йорк
Библиотека задач по DevOps
👾 — Лос Анжелес
👍 — Северная Вирджиния
🥰 — Лаг Вегас
Библиотека задач по DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
В продакшн-кластере вы заметили, что некоторые контейнеры занимают значительно больше места, чем ожидалось. Анализ показал, что Docker-образы разрослись до нескольких гигабайт. Какой из подходов наиболее правильный для оптимизации размера образов?
👾 — Использовать docker system prune -a, чтобы очистить все неиспользуемые образы и освободить место
👍 — Перейти на базовые образы типа alpine и оптимизировать Dockerfile (multi-stage build, минимизация слоёв)
🥰 — Хранить большие артефакты (логи, кеши) прямо внутри контейнера, чтобы не загружать файловую систему хоста
⚡️ — Запускать контейнеры с флагом --rm, чтобы они удалялись сразу после завершения работы
Библиотека задач по DevOps
👾 — Использовать docker system prune -a, чтобы очистить все неиспользуемые образы и освободить место
👍 — Перейти на базовые образы типа alpine и оптимизировать Dockerfile (multi-stage build, минимизация слоёв)
🥰 — Хранить большие артефакты (логи, кеши) прямо внутри контейнера, чтобы не загружать файловую систему хоста
Библиотека задач по DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇
Forwarded from Proglib.academy | IT-курсы
Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.
Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки
Please open Telegram to view this post
VIEW IN TELEGRAM
Несколько инженеров иногда одновременно запускают terraform apply, рискуя повредить state. Как это правильно предотвратить?
👾 — Хранить state локально у каждого разработчика
👍 — Использовать удалённый backend с блокировкой (S3 + DynamoDB lock / GCS / Az Blob) и -lock=true
🥰 — Поставить git-hook, запрещающий git push во время apply
⚡️ — Перед каждым apply делать terraform refresh
Библиотека задач DevOps
👾 — Хранить state локально у каждого разработчика
👍 — Использовать удалённый backend с блокировкой (S3 + DynamoDB lock / GCS / Az Blob) и -lock=true
🥰 — Поставить git-hook, запрещающий git push во время apply
⚡️ — Перед каждым apply делать terraform refresh
Библиотека задач DevOps
👍9❤1
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что делает команда kubectl describe?
👾 — Предоставляет подробную информацию о ресурсе Kubernetes
👍 — Создает новый узел
🥰 — Автоматически развертывает приложения
⚡️ — Удаляет под
Библиотека задач по DevOps
👾 — Предоставляет подробную информацию о ресурсе Kubernetes
👍 — Создает новый узел
🥰 — Автоматически развертывает приложения
⚡️ — Удаляет под
Библиотека задач по DevOps
👾26
Forwarded from Библиотека программиста
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
На ноде есть Pods под управлением DaemonSet. Что означает флаг --ignore-daemonsets в kubectl drain?
👾 — Удаляет DaemonSet из кластера
👍 — Переносит все DaemonSet Pods на соседнюю ноду
🥰 — Игнорирует PodDisruptionBudget для всех Pods
⚡️ — Пропускает их, а не удаляет
Разбор:DaemonSet Pods пропускаются и продолжают работать на ноде. Флаг не удаляет DaemonSet и не отменяет PodDisruptionBudget для других Pods.
Документация
Библиотека задач по DevOps
👾 — Удаляет DaemonSet из кластера
👍 — Переносит все DaemonSet Pods на соседнюю ноду
🥰 — Игнорирует PodDisruptionBudget для всех Pods
⚡️ — Пропускает их, а не удаляет
Разбор:
Документация
Библиотека задач по DevOps
⚡3
У Job заданы activeDeadlineSeconds=100 и backoffLimit=5. Дедлайн истёк, но лимит повторов ещё не достигнут. Что произойдёт?
👾 — Job автоматически начнётся заново с нуля
👍 — Job станет Complete, потому что повторов осталось меньше пяти
🥰 — Job завершится Failed с DeadlineExceeded
⚡️ — Job продолжит работу до пяти повторов
Разбор:Job завершится Failed с reason DeadlineExceeded. Общий дедлайн имеет приоритет над backoffLimit. Он не ждёт исчерпания повторов и не запускает Job заново.
Документация
Библиотека задач по DevOps
👾 — Job автоматически начнётся заново с нуля
👍 — Job станет Complete, потому что повторов осталось меньше пяти
🥰 — Job завершится Failed с DeadlineExceeded
⚡️ — Job продолжит работу до пяти повторов
Разбор:
Документация
Библиотека задач по DevOps
Terraform вернул код 2. План провалился?
В CI команда
👾 — План построен успешно и содержит изменения
👍 — Terraform уже применил два изменения
🥰 — Возникла ошибка построения плана
⚡️ — План построен успешно, изменений нет
Разбор:Верно 👾. С флагом -detailed-exitcode код 0 означает успех без изменений, 1 — ошибку, 2 — успех с изменениями. Команда plan их не применяет. Проверка CI «любой ненулевой код — ошибка» в этом режиме даст ложное падение.
Документация
Библиотека задач по DevOps
В CI команда
terraform plan -detailed-exitcode завершилась с кодом 2. Что он означает?👾 — План построен успешно и содержит изменения
👍 — Terraform уже применил два изменения
🥰 — Возникла ошибка построения плана
⚡️ — План построен успешно, изменений нет
Разбор:
Документация
Библиотека задач по DevOps
Что отменит cancel-in-progress: true?
В GitHub.com Actions на уровне workflow задано:
Предыдущий запуск ещё выполняется. В том же репозитории появился новый запуск с той же группой. Что произойдёт с предыдущим?
👾 — Продолжится, а новый запуск будет отклонён
👍 — Продолжится параллельно с новым
🥰 — Будет отменён
⚡️ — Дойдёт до конца, отменяются только pending-запуски
Разбор:Верно 🥰. Флаг включает отмену уже выполняющегося запуска с той же concurrency group. Без него concurrency ограничивает параллельность, но не отменяет running-запуск. Отмена не означает откат уже выполненных внешних действий, например деплоя.
Документация
Библиотека задач по DevOps
В GitHub.com Actions на уровне workflow задано:
concurrency:
group: deploy-main
cancel-in-progress: true
Предыдущий запуск ещё выполняется. В том же репозитории появился новый запуск с той же группой. Что произойдёт с предыдущим?
👾 — Продолжится, а новый запуск будет отклонён
👍 — Продолжится параллельно с новым
🥰 — Будет отменён
⚡️ — Дойдёт до конца, отменяются только pending-запуски
Разбор:
Документация
Библиотека задач по DevOps
До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.
Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽
Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что вернёт absent() при значении метрики 0?
В момент запроса серия
👾 — Одна серия со значением 1
👍 — Исходная серия со значением 0
🥰 — Ошибка из-за нулевого значения
⚡️ — Пустой вектор
Разбор:Верно ⚡️. absent() проверяет наличие элементов во входном векторе, а не их значения. Серия со значением 0 всё равно существует, поэтому результат пуст. Одноэлементный вектор со значением 1 функция возвращает при пустом входе.
Документация
Библиотека задач по DevOps
В момент запроса серия
up{job="api",instance="a:9100"} существует и имеет значение 0. Других серий с job="api" нет. Каков результат absent(up{job="api"})?👾 — Одна серия со значением 1
👍 — Исходная серия со значением 0
🥰 — Ошибка из-за нулевого значения
⚡️ — Пустой вектор
Разбор:
Документация
Библиотека задач по DevOps
⚡1👾1
Станет ли | конвейером в Ansible command?
Обычный запуск задачи в ansible-core 2.18 на POSIX-узле, где доступна внешняя программа
Как будет обработан символ
👾 — Соединит echo с wc, результатом станет число 6
👍 — Попадёт в аргументы echo вместе с wc и -c
🥰 — Разделит echo и wc на две отдельные команды
⚡️ — Вызовет ошибку YAML, задача не запустится
Разбор:Верно 👍. command запускает программу без shell. Здесь |, wc и -c станут аргументами echo, а wc не запустится. Для shell-конвейера нужен ansible.builtin.shell . Подставляемые значения при этом требуют корректного экранирования.
Документация
Библиотека задач по DevOps
Обычный запуск задачи в ansible-core 2.18 на POSIX-узле, где доступна внешняя программа
echo:ansible.builtin.command: echo hello | wc -c
Как будет обработан символ
|?👾 — Соединит echo с wc, результатом станет число 6
👍 — Попадёт в аргументы echo вместе с wc и -c
🥰 — Разделит echo и wc на две отдельные команды
⚡️ — Вызовет ошибку YAML, задача не запустится
Разбор:
Документация
Библиотека задач по DevOps
👍2
Что останется после rm открытого файла?
В Linux у обычного файла в локальной файловой системе одно имя, других жёстких ссылок нет. Процесс открыл файл для чтения. Затем
👾 — Имя исчезло, а через открытый дескриптор ещё можно читать
👍 — rm закрыл дескриптор в другом процессе
🥰 — Имя останется в каталоге до завершения процесса
⚡️ — Любое чтение через дескриптор теперь завершится ENOENT
Разбор:Верно 👾. Удаляется имя файла, а открытый файл продолжает существовать. Процесс может читать через свой дескриптор. При отсутствии других ссылок файл удаляется окончательно после закрытия последнего открытого дескриптора. Поэтому удаление имени и завершение работы с файлом — разные события.
Документация
Библиотека задач по DevOps
В Linux у обычного файла в локальной файловой системе одно имя, других жёстких ссылок нет. Процесс открыл файл для чтения. Затем
rm успешно удалил его имя, но дескриптор ещё открыт. Какое утверждение верно?👾 — Имя исчезло, а через открытый дескриптор ещё можно читать
👍 — rm закрыл дескриптор в другом процессе
🥰 — Имя останется в каталоге до завершения процесса
⚡️ — Любое чтение через дескриптор теперь завершится ENOENT
Разбор:
Документация
Библиотека задач по DevOps
👾2
В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.
Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.
Акция действует до 31 октября включительно
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой CPU request получит Pod с init-контейнерами?
У Pod два контейнера приложения с CPU requests
👾 — 500m
👍 — 900m
🥰 — 800m
⚡️ — 1400m
Разбор:Верно 🥰. Обычные init-контейнеры идут последовательно, их эффективный request — максимум: 800m. У приложений requests складываются: 200m + 300m = 500m. Для Pod берётся большее: max(800m, 500m) = 800m. Это запрос ресурсов для размещения, а не фактическая загрузка CPU.
Документация
Библиотека задач по DevOps
У Pod два контейнера приложения с CPU requests
200m и 300m. У двух обычных init-контейнеров — 800m и 100m. Это итоговые requests после admission. Sidecar нет, Pod-level requests не заданы, overhead равен нулю. Какой эффективный CPU request учитывается при размещении Pod?👾 — 500m
👍 — 900m
🥰 — 800m
⚡️ — 1400m
Разбор:
Документация
Библиотека задач по DevOps
👍1😁1