en
Feedback
DevOps | Вопросы собесов

DevOps | Вопросы собесов

Open in Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv

Show more
5 541
Subscribers
-624 hours
+27 days
+3730 days
Posts Archive
🤔 Как 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). - Не требует перезапуска контейнера. - Более гибкое и динамичное подключение к каталогам. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как определить ресурс, который необходим одной node? Чтобы определить нагрузку на Node и правильно выделить ресурсы, нужно: Проверить текущее потребление ресурсов (CPU, RAM, диски)* Оценить нагрузку от подов (requests и limits) Использовать мониторинг (Prometheus, Grafana, kubectl top) 🚩Проверить нагрузку на Node (`kubectl top node`) Команда
sh  
kubectl top nodes  
Вывод
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%  
node-1      500m         25%    2Gi             50%  
node-2      1000m        50%    4Gi             80%  
🚩Проверить потребление ресурсов подами (`kubectl top pods`) Команда
sh  
kubectl top pods --all-namespaces  
Вывод
NAMESPACE   POD            CPU(cores)   MEMORY(bytes)  
default     web-app-1      250m         256Mi  
default     web-app-2      300m         512Mi  
monitoring  prometheus-1   600m         1Gi  
🚩Анализ `requests` и `limits` подов Команда
sh  
kubectl describe node node-1  
Вывод (пример секции Allocatable)
Allocatable:  
  cpu:                4  
  memory:             8Gi  
  pods:               110  
Проверить requests и limits у подов
sh  
kubectl describe pod my-pod  
Вывод
Requests:  
  cpu:     500m  
  memory:  1Gi  
Limits:  
  cpu:     1  
  memory:  2Gi  
🚩Использование Prometheus и Grafana для анализа нагрузки Prometheus-запросы для анализа Node Средняя загрузка CPU за 5 минут
promql  
avg(rate(node_cpu_seconds_total[5m])) * 100  
Среднее использование памяти
promql  
avg(node_memory_Active_bytes) / avg(node_memory_MemTotal_bytes) * 100
Ставь 👍 и забирай 📚 Базу знаний

Бесплатный курс по дизайну: веб, графический и UX/UI Научись создавать дизайн сайтов и приложений, инфографику для карточек н
Бесплатный курс по дизайну: веб, графический и UX/UI Научись создавать дизайн сайтов и приложений, инфографику для карточек на маркетплейсах и работать в Figma! Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Этот курс для тебя, если ты: ✅ мечтаешь о новой профессии в digital, но не знаешь, с чего начать; ✅ чувствуешь, что хочешь большего — свободы, самореализации, творчества; ✅ полный новичок и хочешь систему, а не хаос; ✅ хочешь начать зарабатывать удалённо. Зарегистрироваться #реклама 16+ ydaev.ru О рекламодателе

🤔 Какие параметры файловой системы могут влиять на выбор файловой системы? Файловая система выбирается по ряду параметров: - Тип нагрузки – большие файлы (XFS, ZFS) или много мелких файлов (EXT4, Btrfs). - Журналирование – влияет на отказоустойчивость (XFS, EXT4). - Снапшоты – нужны ли сохранения состояний файлов (Btrfs, ZFS). - Шифрование – встроенная защита данных (ZFS, LUKS). - Резервирование пространства – например, XFS и ZFS резервируют место. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие join бывают? В реляционных базах данных, операции объединения (JOIN) позволяют объединить строки из двух или более таблиц на основе связанных между собой столбцов. Существует несколько типов JOIN, каждый из которых имеет свои особенности и применим для разных ситуаций. Рассмотрим основные типы JOIN: 🟠INNER JOIN Объединяет строки из обеих таблиц, если они удовлетворяют условию объединения. Когда необходимо выбрать только те строки, которые имеют соответствующие значения в обеих таблицах.
SELECT *
FROM таблица1
INNER JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠LEFT JOIN (или LEFT OUTER JOIN) Возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если соответствующей строки в правой таблице нет, в результирующем наборе данных для столбцов правой таблицы будут значения NULL. Когда необходимо выбрать все строки из одной таблицы и соответствующие данные из другой таблицы, если они существуют.
SELECT *
FROM таблица1
LEFT JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠RIGHT JOIN (или RIGHT OUTER JOIN) Возвращает все строки из правой таблицы и соответствующие строки из левой таблицы. Если соответствующей строки в левой таблице нет, в результирующем наборе данных для столбцов левой таблицы будут значения NULL. Когда необходимо выбрать все строки из одной таблицы (правой) и соответствующие данные из другой таблицы (левой), если они существуют.
SELECT *
FROM таблица1
RIGHT JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠FULL JOIN (или FULL OUTER JOIN) Возвращает все строки, когда есть совпадения либо в левой, либо в правой таблице. Если строки не соответствуют в одной из таблиц, для этой таблицы будут значения NULL. Когда необходимо выбрать все строки из обеих таблиц, независимо от того, есть ли соответствующие строки в другой таблице.
SELECT *
FROM таблица1
FULL JOIN таблица2
ON таблица1.ключ = таблица2.ключ;
🟠CROSS JOIN Возвращает декартово произведение двух таблиц, то есть все возможные комбинации строк из обеих таблиц. Когда необходимо создать комбинации всех строк из обеих таблиц. Используется редко и с осторожностью, так как может привести к очень большому количеству строк.
SELECT *
FROM таблица1
CROSS JOIN таблица2;
🟠SELF JOIN Применяется для объединения таблицы самой с собой. Обычно используется для сравнения строк внутри одной и той же таблицы. Когда необходимо сопоставить строки одной таблицы друг с другом, например, для анализа иерархий или поиска парных записей.
SELECT A.*
FROM таблица A, таблица B
WHERE A.ключ = B.ключ;
🟠NATURAL JOIN Автоматически объединяет таблицы по всем столбцам с одинаковыми именами и типами данных. Когда у таблиц есть столбцы с одинаковыми именами, и нужно объединить их без явного указания условий объединения.
SELECT *
FROM таблица1
NATURAL JOIN таблица2;
Ставь 👍 и забирай 📚 Базу знаний

Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная проф
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰 Научись ей бесплатно! - Бесплатный доступ - Разбор ДЗ от наставника - Мощные кейсы в портфолио Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе

🤔 Что такое мидл? Мидл (middle engineer) — это разработчик, который уже не нуждается в постоянном менторстве, но ещё не руководит другими. Он уверенно решает задачи, понимает архитектуру и знает best practices. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

📺 База 1000+ реальных собеседований На программиста, тестировщика, аналитика, проджекта и другие IT профы. Есть собесы от ведущих компаний: Сбер, Яндекс, ВТБ, Тинькофф, Озон, Wildberries и т.д. 🎯 Переходи по ссылке и присоединяйся к базе, чтобы прокачать свои шансы на успешное трудоустройство!

🤔 Что такое cherry pick? Это команда в системе контроля версий Git, которая позволяет выбрать отдельные коммиты из одной ветки и применить их к другой ветке. Это полезно, когда вы хотите перенести конкретные изменения (коммиты) в текущую ветку, не выполняя слияние всей ветки. 🚩Когда используется 🟠Применение отдельных изменений Когда нужно перенести конкретные исправления или функции из одной ветки в другую, не сливая все изменения из исходной ветки. 🟠Быстрое исправление ошибок Когда найденное исправление в одной ветке нужно срочно применить в другой, например, из ветки разработки в ветку релиза. 🟠Избежание сложного слияния Когда слияние всей ветки может привести к конфликтам или нежелательным изменениям, cherry-pick позволяет аккуратно перенести только нужные коммиты. 🚩Примеры использования 🟠Простого `cherry-pick` Перенос одного коммита из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick коммита
git cherry-pick <commit-hash>
🟠Применения нескольких коммитов Перенос нескольких коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick нескольких коммитов
git cherry-pick <commit-hash-1> <commit-hash-2> <commit-hash-3>
🟠Применения диапазона коммитов Перенос диапазона коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick диапазона коммитов
git cherry-pick <start-commit-hash>..<end-commit-hash>
🚩Разрешение конфликтов 1⃣Разрешите конфликты в файлах. 2⃣Добавьте изменения в индекс
git add <filename>   
3⃣Завершите процесс cherry-pick
git cherry-pick --continue   
🚩Прерывание Если вы хотите прервать процесс cherry-pick, можно использовать команду
git cherry-pick --abort
Ставь 👍 и забирай 📚 Базу знаний

VK RecSys Challenge — решите задачу холодного старта Привет! Открываем регистрацию на VK RecSys Challenge – соревнование по р
VK RecSys Challenge — решите задачу холодного старта Привет! Открываем регистрацию на VK RecSys Challenge – соревнование по разработке рекомендательных систем. Задача – решить одну из ключевых проблем рекомендаций: как показать пользователю ролик, который он точно посмотрит, даже если никто этот ролик не видел. Вам предстоит поработать с реальным датасетом VK-LSVD: 40 миллиардов обезличенных пользовательских взаимодействий и 20 миллионов коротких видео. Ждём студентов, исследователей, ML-инженеров – всех, кому интересен мир рекома. Формат участия: - индивидуально или в команде до 4 человек - 5 сабмитов в день - призовой фонд – 2 500 000 рублей Приём заявок – до 15 декабря Подробности и регистрация – по ссылке Зарегистрироваться #реклама 16+ dev-events.com О рекламодателе

🤔 Как откатить Helm-релиз? С помощью команды: helm rollback <release-name> <revision-number> Можно также узнать список доступных ревизий через: helm history <release-name> Это позволяет быстро вернуться к рабочей версии, если обновление прошло неудачно. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Чем отличается образ от контейнера? Образ (Image) – это шаблон, из которого создаются контейнеры. Контейнер (Container) – это запущенный экземпляр образа. 🚩Что такое образ (Image)? Образ – это неизменяемый шаблон с установленным ПО Содержит все файлы, библиотеки и зависимости Может храниться в реестре (Docker Hub, GitHub Container Registry, ECR)
docker pull nginx:latest
Пример списка образов
docker images
Пример создания образа через Dockerfile
FROM ubuntu:latest
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
docker build -t my-nginx .
🚩Что такое контейнер (Container)? Контейнер – это запущенный экземпляр образа Может изменять файлы и состояние, но это не сохраняется в образе Изолирован, но использует ядро ОС хоста
docker run -d --name web -p 80:80 nginx
Пример списка контейнеров
docker ps
Пример остановки контейнера
docker stop web
Ставь 👍 и забирай 📚 Базу знаний

Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 На
Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 Начните прямо сейчас ⚡ Зарегистрироваться #реклама direct.yandex.ru О рекламодателе

🤔 Когда методы REST используются? REST-методы применяются при работе с веб-API. Выбор метода зависит от задачи: - GET — при запросе информации; - POST — при создании данных (регистрация, форма); - PUT — при обновлении ресурса полностью; - PATCH — для изменения конкретных полей; - DELETE — при удалении данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний