и посмотреть медиа
DevOps - вопросы собесов
и посмотреть медиа
Собесы DevOps.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Вопросы для собеседований по DevOps.
🤔 Что в Terraform пишут в манифест? - В .tf-файлах описывают: - provider — с какой платформой работать; - resource — что создать (VM, bucket, сеть); - variable — параметры; - output — что вернуть; - module — переиспользуемые блоки. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 В чём преимущество Kubernetes как платформы? Это платформа для оркестрации контейнеров, которая упрощает развертывание, управление и масштабирование приложений. Она имеет ряд ключевых преимуществ, которые делают её популярной в DevOps и облачных решениях. 🚩Основные плюсы ➕Автоматизация управления приложениями Kubernetes автоматически запускает, останавливает и перезапускает контейнеры при сбоях. Поддерживает заданное число экземпляров (реплик) приложений, перезапуская или создавая их при необходимости. ➕Масштабирование (горизонтальное и вертикальное) Ручное: Легко увеличить или уменьшить количество контейнеров (поды) для приложения. Автоматическое: Используя Horizontal Pod Autoscaler (HPA), Kubernetes добавляет ресурсы при увеличении нагрузки. ➕Высокая доступность (HA) Kubernetes поддерживает отказоустойчивость: Если один узел (node) выходит из строя, поды перемещаются на другие узлы. Внутренний балансировщик нагрузки распределяет трафик между подами. ➕Платформонезависимость Kubernetes работает в любых средах: Локальных (например, Minikube). В публичных облаках (AWS, Google Cloud, Azure). В гибридных и on-premise инфраструктурах. ➕Управление конфигурацией и секретами Kubernetes упрощает работу с настройками: ConfigMaps: Для управления конфигурационными данными. Secrets: Для безопасного хранения конфиденциальной информации, например, ключей API или паролей. ➕Эффективное использование ресурсов Kubernetes помогает оптимизировать потребление CPU и памяти: Устанавливая минимальные и максимальные лимиты ресурсов для каждого приложения. Перераспределяя ресурсы между приложениями. ➕Расширяемость Kubernetes поддерживает плагины и кастомизацию: Сетевые плагины (Calico, Flannel) для настройки сети. Системы мониторинга (Prometheus, Grafana). Операторы для автоматизации сложных задач. ➕Сообщество и экосистема Kubernetes поддерживается большинством крупных облачных провайдеров. Обширная экосистема инструментов: Helm для управления шаблонами, ArgoCD для GitOps, Istio для сетевых взаимодействий. 🚩Когда особенно полезен? Разработка микросервисных архитектур. Частые релизы и автоматизация CI/CD. Работа с масштабируемыми приложениями. Использование гибридных или мультиоблачных решений. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Во сколько зонах можно включить репликацию в RDS Aurora? Aurora поддерживает до 5 read-replicas в разных зонах/регионах с высокой доступностью и кросс-региональным фейловером. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как оптимизировать имедж? Оптимизация Docker-имеджа (или другого контейнерного имеджа) необходима для уменьшения его размера, ускорения сборки, повышения безопасности и повышения производительности контейнеров. 🟠Используйте минимальную базовую ОС Почему: Базовый образ сильно влияет на размер. Например, alpine занимает ~5 МБ, в то время как ubuntu или debian могут превышать сотни мегабайт. Как: Замените базовый образ: FROM alpine:latest 🟠Удаляйте ненужные файлы Почему: Временные файлы, кэш или артефакты сборки занимают место. Как: Добавьте команды для очистки временных данных: RUN apt-get update && apt-get install -y curl \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* 🟠Используйте многоэтапную сборку (multi-stage builds) Почему: Стадия сборки может содержать инструменты, которые не нужны в финальном образе. Как # Стадия сборки FROM golang:1.20 as builder WORKDIR /app COPY . . RUN go build -o app . # Финальный образ FROM alpine:latest WORKDIR /app COPY --from=builder /app/app . CMD ["./app"] 🟠Минимизируйте количество слоёв Почему: Каждый RUN, COPY, ADD создаёт новый слой. Слишком много слоёв увеличивают размер образа. Как: Объединяйте команды: RUN apt-get update && apt-get install -y curl wget \ && apt-get clean && rm -rf /var/lib/apt/lists/* 🟠Не сохраняйте секреты Почему: Переменные окружения с паролями или токенами могут быть случайно унаследованы. Как: Используйте Docker secrets или .env-файлы и исключайте их из COPY ENV APP_ENV=production 🟠Кэшируйте зависимости Почему: Частое скачивание зависимостей замедляет сборку. Как: Переносите команды загрузки зависимостей ближе к началу: COPY go.mod go.sum ./ RUN go mod download 🟠Проверяйте зависимости Почему: Устаревшие или ненужные зависимости увеличивают размер и могут содержать уязвимости. Как: Используйте сканеры вроде Trivy или Docker Scan для анализа. trivy image myimage:latest 🚩Пример полного Dockerfile # 1. Используем минимальный базовый образ FROM node:20-alpine as builder # 2. Устанавливаем зависимости WORKDIR /app COPY package*.json ./ RUN npm install # 3. Копируем код COPY . . # 4. Собираем проект RUN npm run build # Финальный минимальный образ FROM nginx:alpine COPY --from=builder /app/build /usr/share/nginx/html CMD ["nginx", "-g", "daemon off;"] Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что будет со стейтом PersistentVolume после убийства пода? - Если PVC/Pod удалён, но политика Retain, то PV остаётся. - Если политика Delete, то PV и физическое хранилище удаляются. - При Recycle (устаревшая) — том очищается и повторно используется. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как найти запущенный процесс? В операционных системах на базе Unix и Linux для поиска запущенных процессов используются различные команды. 🟠Команда `ps` Команда ps отображает список текущих процессов. Часто используемые опции: ps aux: Показывает все процессы в системе. ps -ef: Альтернативный формат вывода всех процессов. ps aux | grep 🟠Команда `top` Команда top показывает список процессов в реальном времени, обновляя его каждые несколько секунд. Это удобно для мониторинга системы и поиска процессов с высокой загрузкой CPU или памяти. top 🟠Команда `htop` Команда htop — это улучшенная версия top, предоставляющая более удобный интерфейс для мониторинга процессов. Она должна быть установлена отдельно. sudo apt-get install htop htop 🟠Команда `pgrep` Команда pgrep используется для поиска процессов по имени. Она возвращает идентификаторы (PID) процессов, соответствующих критериям поиска. Пример использования: pgrep 🟠Команда `pidof` Команда pidof возвращает идентификаторы (PID) процессов с указанным именем. pidof 🟠Команда `ps` с фильтрацией Для более точного поиска можно использовать команду ps с фильтрацией через grep. ps aux | grep | grep -v grep 🟠Команда `lsof` Команда lsof отображает список открытых файлов и может использоваться для поиска процессов, открывающих определенные файлы. sudo lsof -i : 🚩Пример поиска конкретного процесса Допустим, вам нужно найти процесс с именем nginx. Вот несколько способов сделать это Использование ps ps aux | grep nginx | grep -v grep Использование pgrep pgrep nginx Использование pidof pidof nginx 🚩Использование `top` или `htop` Запустите top или htop и найдите процесс nginx в интерактивном режиме. Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Как управлять в GitLab CI чувствительными данными и как их передаёте? Для передачи чувствительных данных, таких как токены или ключи доступа, используются переменные окружения, которые можно задать в настройках проекта в GitLab. Эти данные защищены и не отображаются в логах выполнения pipeline. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Какие процессы убивает long killer? Это системный механизм в Astra Linux (и некоторых других дистрибутивах на базе Debian), который убивает "долгоиграющие" процессы, потребляющие слишком много ресурсов. Он предотвращает зависания системы и защищает от неэффективного использования вычислительных мощностей. 🚩Какие процессы убивает Long Killer? Long Killer анализирует процессы и завершает те, которые: Запущены от обычного пользователя (не root). Работают слишком долго (по умолчанию >10 минут). Потребляют много CPU (по умолчанию >90% CPU). Используют много памяти (если система близка к OOM – Out of Memory). Не имеют активности (зависли, например, ожидание ввода). Он не убивает root-процессы. Системные службы (например, sshd, systemd) остаются нетронутыми. Если процесс выполняется интерактивно (например, работа в vim или nano), он обычно не трогает его. 🚩Как проверить, что процесс убит Long Killer? Если подозреваете, что ваш процесс завершился из-за Long Killer, посмотрите логи journalctl -u long-killer.service --no-pager | tail -n 20 Также можно проверить dmesg dmesg | grep "killed by Long Killer" 🚩Как отключить или настроить Long Killer? Файл конфигурации находится здесь /etc/long-killer.conf Пример настроек MAX_CPU_USAGE=90 # Максимальная загрузка CPU (%) MAX_EXEC_TIME=600 # Максимальное время выполнения (секунды) EXCLUDE_USERS=root # Не убивать процессы от root После изменения перезапустите сервис systemctl restart long-killer.service Чтобы полностью отключить Long Killer systemctl stop long-killer.service systemctl disable long-killer.service 🚩Как избежать убийства процессов? Запуск от root (если это безопасно): sudo my_long_process Снижение приоритета процесса (nice/renice) nice -n 10 my_process renice -n 10 -p Использование nohup или screen для фоновых задач nohup my_script.sh & Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиа🤔 Что такое императивный подход? Императивный подход — это пошаговое описание того, что делать. Скрипт задаёт последовательность инструкций: "установи пакет", "создай файл", "перезапусти службу". Контроль полностью в руках разработчика. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!