DevOps | Вопросы собесов
Open in Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Show more5 564
Subscribers
-324 hours
-127 days
-230 days
Posts Archive
🤔 Что произойдет если под не пройдет readiness пробу?
Если под (Pod) в Kubernetes не пройдет readiness-пробу (readiness probe), он будет считаться не готовым для обработки запросов.
🚩Что делает readiness-проба?
Readiness-проба используется для определения того, готов ли контейнер в поде обрабатывать входящие запросы. Если проба не проходит, Kubernetes исключает этот под из списка доступных для обслуживания запросов (например, через Service).
🚩Основные последствия
🟠Под не будет получать трафик через Service
Kubernetes автоматически исключает под из группы Endpoints для соответствующего сервиса. Другие компоненты системы, обращающиеся к сервису, не будут направлять запросы в этот под.
🟠Под продолжает работать
Под не будет удален или перезапущен. Kubernetes продолжит проверять его состояние readiness-пробой до тех пор, пока он не станет готовым.
🟠Нет влияния на liveness-пробу
Если readiness-проба не проходит, это не влияет на liveness-пробу. Под будет работать, пока не нарушена его "жизнеспособность".
🟠Аварийное поведение приложения может быть скрыто
Если под зависнет или будет не в состоянии обработать запросы, но при этом не нарушит liveness-пробу, он останется запущенным, но не будет получать трафик.
🚩Как это выглядит на практике?
Пример readiness-пробы
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: my-container
image: nginx
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
🚩Сценарий
🟠На старте
После создания пода Kubernetes ждет initialDelaySeconds (5 секунд) перед выполнением первой проверки. Если / не отвечает на HTTP-запрос, под считается не готовым.
🟠Если проба продолжает проваливаться
Kubernetes исключает под из группы доступных эндпоинтов. Под остается запущенным, и проба выполняется каждые periodSeconds (10 секунд), пока под не станет готовым.
🚩Что произойдет с трафиком?
Если под — единственный в сервисе: Запросы к сервису вернут ошибку (например, 503 Service Unavailable), так как ни один под не готов.
Если подов несколько: Трафик перенаправляется на другие поды, готовые обрабатывать запросы.
🚩Как это помогает?
🟠Обеспечивает стабильность приложения
Под начинает обрабатывать трафик только после полной инициализации.
🟠Улучшает отказоустойчивость
В случае проблем с подом система перенаправляет запросы на другие экземпляры.
🟠Поддерживает обновления без простоя
Во время обновления подов через Deployment новые поды добавляются в пул доступных только после успешного прохождения readiness-проб.
Ставь 👍 и забирай 📚 Базу знанийИИ-революция в вашей карьере: бесплатный вебинар
2025 год: нейросети — это must-have навык для карьерного роста. 👌
✅Приглашаем на бесплатный живой вебинар, где вы:
--- Поймете, какие нейросети существуют и как их применять в работе.
--- Научитесь писать эффективные промпты и автоматизировать рутину.
--- Узнаете, как делегировать ИИ задачи и экономить от 20 часов в неделю!
--- Создадите своего первого ИИ-ассистента в прямом эфире.
Получите руководство «Как создать цифровой аватар» сразу после регистрации!
Подойдет новичкам. Онлайн-формат с ответами на вопросы.
⚡ Жмите «Зарегистрироваться», чтобы прокачать свой скилл-сет и освободить время для главного!
Зарегистрироваться
#реклама 16+
ed.bonnieandslide.com
О рекламодателе
🤔 Какие типы заголовков есть?
Заголовки в HTTP делятся на:
- General — общие (Date, Connection);
- Request — только для клиента (Accept, User-Agent, Authorization);
- Response — только для ответа (Server, Set-Cookie);
- Entity — описывают тело (Content-Type, Content-Length).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Гайд для маркетологов по эффективным онлайн-встречам
Как CMO, PR и digital-маркетологам повысить результативность брейнштормов, совещаний и планерок с командой с помощью онлайн-встреч?
Гайд МТС Линк: 37 страниц полезных материалов, чек-листов и кейсов для эффективных видеовстреч и совещаний.
✅ В гайде:
- Как создать постоянную ссылку на регулярные встречи с подрядчиками, командой или агентствами и подключаться в 2 клика;
- Как управлять встречей и завершить ее четкими договоренностями с ИИ-расшифровкой голоса в текст;
- Как проводить кастдевы, брейнштормы и формулировать гипотезы с помощью 15+ шаблонов в онлайн-досках МТС Линк;
- Как разом пригласить всех участников на синк таким образом, чтобы все пришли.
Бонус внутри: 5 способов не выгореть от бесконечных синков.
✨ Скачайте гайд бесплатно по ссылке
Скачать
#реклама 16+
mts-link.ru
О рекламодателе
🤔 В чем разница Deployment и DaemonSet?
Deployment и DaemonSet являются двумя типами контроллеров, которые управляют развертыванием и обеспечением жизненного цикла подов (групп контейнеров). Они оба играют важные роли, но используются для разных целей и сценариев.
🚩Deployment
Это контроллер, который обеспечивает декларативное обновление подов и ReplicaSets (другой тип контроллера, который управляет одновременным запуском нескольких экземпляров одного и того же пода). Deployment поддерживает непрерывное развертывание, откат к предыдущим версиям, а также масштабирование подов.
🟠Масштабирование
Вы можете увеличивать или уменьшать количество подов в зависимости от нужд.
🟠Обновления
Поддерживает стратегии развертывания, такие как Rolling Update (постепенное обновление), которое помогает минимизировать простои при обновлении приложения.
🟠Самовосстановление
Автоматически перезапускает поды, которые перестали работать, находятся в ошибочном состоянии или не отвечают.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
🚩DaemonSet
Это контроллер, который гарантирует, что на каждом узле кластера Kubernetes запущен экземпляр заданного пода. Когда добавляется новый узел, на нем автоматически запускается под, управляемый DaemonSet, и если узел удаляется, поды удаляются автоматически. Это идеально подходит для запуска служб мониторинга, сбора логов или других утилит, которые должны быть запущены на каждом узле.
🟠Гарантия запуска
Убедитесь, что каждый узел кластера запускает копию определённого пода.
🟠Автоматическое размещение
Когда добавляются новые узлы, на них автоматически размещаются необходимые поды.
🟠Службы уровня узла
Идеально подходит для запуска системных служб, таких как коллекторы логов, системы мониторинга и другие.
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
spec:
selector:
matchLabels:
name: fluentd-elasticsearch
template:
metadata:
labels:
name: fluentd-elasticsearch
spec:
containers:
- name: fluentd-elasticsearch
image: fluent/fluentd:v1.0
volumeMounts:
- name: varlog
mountPath: /var/log
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
readOnly: true
Ставь 👍 и забирай 📚 Базу знанийREKONFA Live
6 ноября приглашаем рекламодателей, агентства и рекламные площадки обсудить технологии, маркетинговые инструменты и актуальные новинки. Ключевые участники рынка поделятся опытом и расскажут:
— О ситуации на рынке рекламы
— Как продвигать и продавать в интернете в 2025 году
— Как бизнесу адаптироваться к меняющимся условиям
Вас ждут доклады на актуальные темы, классный нетворкинг, вдохновляющая атмосфера для творчества и креатива.
Встречаемся 6 ноября в Москве. Для тех, кто не сможет приехать, организуем интерактивное digital-шоу. Мероприятие бесплатное, нужно только зарегистрироваться.
Зарегистрироваться
#реклама 18+
ya.rekonfa.ru
О рекламодателе
🤔 Зачем нужен OOM
OOM (Out Of Memory) — это механизм, срабатывающий, когда системе не хватает памяти для работы, что приводит к завершению процессов с высокой нагрузкой. Он защищает систему от полного исчерпания памяти, освобождая ресурсы, чтобы другие процессы могли продолжать работать. OOM-killer используется для выбора и завершения наименее критичных процессов, предотвращая полное зависание системы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое Grafana?
Grafana — это инструмент для визуализации, мониторинга и анализа метрик. Он позволяет строить графики, панели (dashboards) и оповещения на основе данных из разных источников.
🚩Основные возможности Grafana
Дашборды – красивые панели с графиками и таблицами
Много источников данных – Prometheus, MySQL, Elasticsearch, AWS CloudWatch
Настраиваемые алерты – уведомления в Slack, Telegram, Email
Аутентификация – поддержка LDAP, OAuth, GitHub
Плагины и расширения – добавление новых панелей и источников данных
🚩Как работает Grafana?
Grafana подключается к источнику данных (например, Prometheus)
Пользователь создает дашборды с графиками, таблицами и метриками
Настраиваются алерты, которые отправляют уведомления при сбоях
🚩Пример развертывания Grafana с Prometheus
Запуск Grafana в Docker
docker run -d -p 3000:3000 --name=grafana grafana/grafana
Пример запроса в PromQL
node_cpu_seconds_total{mode="idle"}
🚩Как настроить алерты?
Например, если загрузка CPU выше 80%, отправлять сообщение в Telegram.
В Grafana → "Alerting" → "Alert Rules" → "Create Alert Rule"
Записываем условие:
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
🚩Где используется Grafana?
Мониторинг серверов (CPU, RAM, диски, сеть)
DevOps (Prometheus + Grafana) для Kubernetes, Docker
Бизнес-аналитика (данные из MySQL, Google Analytics)
IoT – графики с датчиков и устройств
Ставь 👍 и забирай 📚 Базу знанийБыстрый старт в кибербез: с нуля до первой работы
Ищешь перспективную профессию с быстрым ростом зарплаты?
Кибербезопасность — востребованная сфера с острой нехваткой специалистов. Здесь реально выйти на доход от 70 000 уже за полгода.
Даже без опыта и образования в ИТ.
С чего начать и как построить карьеру, расскажут эксперты Солара на вебинаре 14 ноября в 19:00:
✅ Какие профессии доступны новичкам без опыта и как быстро их освоить.
✅ Как найти свою первую работу.
✅ Какие ошибки допускают новички в начале пути.
Всем участникам подарим пошаговый план по саморазвитию и быстрому старту в кибербезопасность.
Присоединяйтесь!
Зарегистрироваться
#реклама 16+
rt-solar.ru
О рекламодателе
🤔 Что такое брокеры сообщений?
Брокер сообщений — это система, которая:
- принимает, сохраняет и передаёт сообщения между компонентами системы;
- развязывает отправителя и получателя, повышает отказоустойчивость;
- поддерживает очереди, топики, доставку и масштабирование.
Примеры: Kafka, RabbitMQ, NATS, ActiveMQ.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как мы можем поменять последовательное выполнение таски плейбука на машинах в параллельное?
По умолчанию Ansible выполняет задачи последовательно, но можно ускорить выполнение с помощью параметра
forks или асинхронных задач (async).
🚩Увеличение параллельных подключений (`forks`)
forks – это количество серверов, на которых Ansible выполняет задачи одновременно.
ansible-playbook -i inventory.ini playbook.yml --forks=10
Установить forks в ansible.cfg:
[defaults]
forks = 10
🚩Асинхронное выполнение (`async` + `poll`)
Если задача выполняется долго, ее можно запустить асинхронно и не ждать завершения.
Пример асинхронного выполнения установки пакета
- name: Установить nginx параллельно
apt:
name: nginx
state: present
async: 300
poll: 0
async: 300 – запускает задачу и дает ей 300 секунд на выполнение
poll: 0 – не ждет завершения, сразу переходит к следующей
Проверить статус запущенных задач:
ansible all -m async_status -a "jid=1234567890" -i inventory.ini
🚩Использование `&` в Shell-командах (`shell` + `nohup`)
Пример запуска задачи в фоновом режиме
- name: Запустить долгий процесс
shell: "nohup long_script.sh &"
Ставь 👍 и забирай 📚 Базу знанийЗапустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
🤔 Почему Java Memory Model важно при работе с многопоточностью?
Java Memory Model (JMM):
- Определяет как потоки видят переменные и как изменения одной нити становятся видимыми другим.
- Без JMM каждый поток может кэшировать значения, что приводит к несогласованности данных.
- Благодаря JMM можно использовать volatile, synchronized и Atomic переменные с гарантией корректности.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Как linux выбирает, какой из процессов завершить?
Она использует механизм, известный как OOM Killer (убийца процессов при нехватке памяти), для завершения процессов с целью освобождения памяти. Выбор процесса для завершения базируется на ряде критериев, чтобы минимизировать влияние на работу системы.
🚩Как работает OOM Killer?
🟠Очки OOM (OOM Score)
Каждому процессу присваиваются очки OOM, которые рассчитываются на основе нескольких факторов, таких как: Объем памяти, используемой процессом. Приоритет процесса. Важность процесса для системы (например, системные демоны имеют более низкие очки).
🟠Формула расчета OOM Score
Основной фактор при расчете очков - это объем потребляемой процессом памяти. Чем больше памяти потребляет процесс, тем выше его OOM Score. Операционная система также учитывает приоритет процесса (nice value) и некоторые другие параметры.
🟠Принудительное завершение
Процесс с наибольшим OOM Score считается наименее критичным для системы и завершается первым.
🚩Пример расчета OOM Score
🟠Вот пример того, как может быть рассчитан OOM Score (упрощенный)
Процесс A использует 1 ГБ памяти.
Процесс B использует 2 ГБ памяти.
Процесс C использует 500 МБ памяти, но это критический системный процесс.
🟠OOM Score для этих процессов может выглядеть так
Процесс A: 300
Процесс B: 600
Процесс C: 100 (низкий, так как процесс критический)
🚩Настройка OOM Killer
Администраторы могут влиять на работу OOM Killer, настраивая параметры OOM Score для конкретных процессов с помощью файлов в каталоге
/proc. Например, для изменения приоритета процесса:
echo -1000 > /proc/<PID>/oom_score_adj
🚩Логирование и мониторинг
При срабатывании OOM Killer соответствующие сообщения записываются в системный журнал (обычно /var/log/syslog или /var/log/messages), что позволяет администраторам анализировать причины и предпринимать меры по предотвращению в будущем.
Ставь 👍 и забирай 📚 Базу знаний🤔 Как использовать темплейты Helm?
Темплейты находятся в директории templates/ и содержат шаблонизированные YAML-файлы, в которых можно:
- Использовать переменные из values.yaml
- Применять условные конструкции, циклы, функции Go-шаблонов
Ты можешь:
- Генерировать манифесты: helm template
- Переопределять значения при установке: helm install --set key=value
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 При попытке создания файла на диске на linux ошибка что места нет проверяете место есть с чем это может быть связано
Если при создании файла в Linux появляется ошибка, что места нет, но
df -h показывает свободное место, проблема может быть в следующем:
🚩Закончились inodes
Inodes – это структуры, которые хранят метаданные о файлах. Даже если есть свободное место, но inodes кончились, новые файлы создать нельзя.
df -i
Найти каталоги с множеством маленьких файлов:
find /path -xdev -type f | wc -l # Количество файлов в каталоге
🚩Ограничение дискового квотирования (quota)
В системе могут быть настроены дисковые квоты, которые ограничивают использование диска для пользователя или группы.
quota -v
🚩Заполнен раздел `/var`, `/tmp` или `/home`
В системе может быть несколько дисковых разделов (/, /var, /home и т. д.). Если один из них заполнен, в него нельзя записывать файлы.
df -hT
🚩Файловая система смонтирована в режиме `read-only`
Если файловая система перешла в режим «только для чтения» (read-only) из-за ошибки или сбоя, запись на неё невозможна.
mount | grep ' ro,'
Если файловая система смонтирована с `ro`, значит, запись запрещена. Перемонтировать диск:
mount -o remount,rw /path
Проверить диск на ошибки:
dmesg | tail -20 # Лог ошибок
fsck /dev/sdX # Проверка диска
Ставь 👍 и забирай 📚 Базу знанийГайд для РОПов по проведению эффективных вебинаров
Как руководителям отделов продаж увеличить количество успешных сделок при том же объеме лидов с помощью вебинаров?
Гайд от МТС Линк по обучающим вебинарам для отделов продаж.
✅ В гайде:
- Как эффективнее прокачивать скиллы менеджеров и закрывать больше сделок за меньшие сроки;
- Как организовать тренинг так, чтобы участники действительно подключились и дошли до финального модуля;
- Как выявить слабого менеджера и улучшить его показатели;
- Как сэкономить время на организации вебинара и пригласить всех участников в 2 клика.
Бонус внутри: 5 прикладных советов по контролю внимания участников во время вебинара
✨ Скачайте гайд бесплатно по ссылке
Скачать
#реклама 16+
mts-link.ru
О рекламодателе
🤔 Kubernetes Control Plane и Worker Node — кто за что отвечает?
- Control Plane — управляет кластером, принимает решения, следит за состоянием.
- Worker Node — выполняет рабочие задачи, т.е. подами и контейнерами.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Где бы хранил tfstate если много разрабов?
Файл
terraform.tfstate содержит текущее состояние инфраструктуры. Если его неправильно хранить, возможны конфликты и повреждение данных.
🚩Плохие решения
Локально (terraform.tfstate в репозитории)
Потеря данных, если разработчик сменит машину.
Конфликты, если несколько человек применяют terraform apply.
Невозможно откатиться к старому состоянию.
Не поддерживает блокировки (terraform lock).
Возможны проблемы с одновременным доступом.
🚩Лучшие решения для хранения `tfstate`
🟠S3 + DynamoDB (AWS) → Самый популярный способ
S3 хранит tfstate, а DynamoDB предотвращает конфликты.
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-lock"
}
}
🟠Terraform Cloud/Enterprise → Официальное SaaS-решение
Terraform Cloud хранит tfstate в облаке HashiCorp.
terraform {
backend "remote" {
hostname = "app.terraform.io"
organization = "my-org"
workspaces {
name = "my-workspace"
}
}
}
🟠Google Cloud Storage (GCS) + Firestore (GCP)
Для GCP аналог AWS S3 — это Google Cloud Storage (GCS), а DynamoDB заменяется Firestore.
terraform {
backend "gcs" {
bucket = "my-tfstate-bucket"
prefix = "terraform/state"
}
}
🟠Azure Storage + Azure CosmosDB (Azure)
Для Azure можно использовать Azure Storage и блокировки через Azure CosmosDB.
terraform {
backend "azurerm" {
resource_group_name = "my-rg"
storage_account_name = "myterraformstate"
container_name = "tfstate"
key = "prod.terraform.tfstate"
}
}
Ставь 👍 и забирай 📚 Базу знаний🤔 Отличия монтирования дисков к виртуалке и к контейнеру?
- Виртуальная машина (VM):
- Подключается как полноценный виртуальный диск.
- Обычно требует перезапуска и настройки в гипервизоре.
- Может использовать собственную файловую систему.
- Контейнер (Docker):
- Монтирование происходит на уровне хоста (bind mount или volume).
- Не требует перезапуска контейнера.
- Более гибкое и динамичное подключение к каталогам.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
