Библиотека собеса по DevOps | вопросы с собеседований
3.11K subscribers
152 photos
7 videos
2 files
357 links
Вопросы с собеседований по DevOps и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Объясните принципы оркестровки, когда речь идет о программном обеспечении и DevOps.

Автоматизированная конфигурация, координация и управление компьютерными системами, службами и приложениями называется оркестровкой в ​​DevOps. Она использует инструменты DevOps, которые позволяют контролировать версии, быстро обновлять и выпускать, а также использовать другие передовые методы разработки программного обеспечения.

Оркестровка в программном обеспечении включает в себя координацию и управление несколькими компьютерными системами, приложениями и/или службами, связывая вместе различные задачи для выполнения более крупного рабочего процесса или процесса. Эти процессы могут состоять из многочисленных автоматизированных задач и могут включать несколько систем.

Библиотека собеса по DevOps
Какие инструменты с открытым исходным кодом вы используете, чтобы сделать Puppet более мощным?

Изменения в конфигурации отслеживаются с помощью Jira, а дальнейшее обслуживание осуществляется посредством внутренних процедур. Контроль версий использует поддержку Git и приложения диспетчера кода Puppet. Изменения передаются через конвейер непрерывной интеграции Jenkins.

Библиотека собеса по DevOps
🥱1
Что такое Ingress и для чего он необходим?

Ingress позволяет настраивать маршрутизацию трафика от внешних источников к сервисам внутри кластера.

Ingress определяет правила маршрутизации к сетевым сервисам, а контроллер Ingress отвечает за их реализацию. Контроллер не входит в стандартную поставку Kubernetes, но вы можете использовать сторонние решения, конечно, если предварительно изучите их возможности и особенности.


Библиотека собеса по DevOps
COPY vs ADD?

COPY для файлов из контекста. ADD ещё умеет tar-распаковку и URL — почти всегда зло. COPY предпочтительнее.

ARG vs ENV?

ARG виден только на этапе build (не в рантайме). ENV попадает в образ и окружение контейнера.

Как уменьшить размер образа?

Multi-stage builds, .dockerignore, Alpine/ubi-minimal/Distroless, объединяй RUN, чисти кеши (apt/apk) в том же слое, пинь версии.


Библиотека собеса по DevOps
1👍1
Почему docker stop иногда не завершает контейнер корректно?

docker stop шлёт SIGTERM PID 1 и по таймауту SIGKILL; если PID 1 — shell/скрипт (shell-форма ENTRYPOINT) или процесс не форвардит/не обрабатывает сигналы, graceful shutdown не случается. Решение: exec-форма ENTRYPOINT ["app"], обработка SIGTERM в коде, при нужде STOPSIGNAL, либо --init/tini.

Библиотека собеса по DevOps
Зачем сначала делать COPY package*.json ./ и только потом RUN npm ci, а уже затем COPY . .?

Так кэшируется слой с зависимостями: пока манифесты не меняются, npm ci берётся из кеша, а изменения в исходниках не инвалидируют установку пакетов. Итог — быстрые пересборки и предсказуемость.

Библиотека собеса по DevOps
Что такое веб-перехват мутационного допуска Kubernetes и как он работает?

Вебхук мутационного допуска позволяет изменять объекты Kubernetes в режиме реального времени до их применения в кластере и сохранения. Он запускает динамический контроллер допуска в Kubernetes, который перехватывает запросы API до сохранения объектов в etcd. Он может изменять полезную нагрузку запроса, внедряя, изменяя или удаляя поля, прежде чем разрешить выполнение запроса.

Они обычно используются для:
✍🏻 Внедрения дополнительных объектов (sidecars).
✍🏻 Установки значений по умолчанию для модулей (pod), развертываний (deployments) и других ресурсов.
✍🏻 Применения передовых практик (например, автоматического назначения ограничений ресурсов).
✍🏻 Добавления настроек безопасности (например, требования меток для отслеживания аудита).


Библиотека собеса по DevOps
Что такое виртуализация?

В момент появления понятия виртуализации, оно представляло собой метод логического разделения мейнфреймов для одновременной работы нескольких приложений. Однако с развитием технологий появилась возможность одновременной работы нескольких операционных систем на одном сервере x86, что значительно изменило смысл виртуализации.

В результате виртуализация позволяет запускать две различные операционные системы на одном устройстве. Первая операционная система может использоваться для административных целей, в то время как остальные гостевые операционные системы загружаются как обычно, включая инициализацию и загрузку ядра. Этот метод также обеспечивает повышенный уровень безопасности, так как гостевая операционная система не имеет полного доступа к управляющей (host) операционной системе, что помогает избежать возможных уязвимостей в безопасности.

Есть три типа виртуализации:
✍🏻 Паравиртуализация
✍🏻 Эмуляция
✍🏻 Контейнерная виртуализация


Библиотека собеса по DevOps
Объясни разницу между layer-кэшем сборки и BuildKit-кэшем через RUN --mount=type=cache/--mount=type=secret, как они инвалидируются и как делиться кэшем между машинами.

Layer-кэш — это слои образа: ключ — инструкция и входы шага (для COPY/ADD — хэш содержимого, для RUN — команда + предыдущие слои); изменение любого раннего шага сбрасывает все ниже, кэш хранится в локальном image store и по сути переносится только вместе с образом. --mount=type=cache даёт временный RW-каталог для шага, содержимое не попадает в слой и уменьшает размер образа; кэш живёт отдельно от образа и идентифицируется id/target, подходит для пакетных менеджеров/сборок. --mount=type=secret подаёт секрет как файл только на время шага, он не записывается в слой и не «утекает» в историю; сам факт секрета не ломает кэш шага. Для обмена кэшем: в Buildx — --cache-to/--cache-from (local|registry), а для наследования кэша слоёв через реестр — пушить образ (или использовать inline-cache/BUILDKIT_INLINE_CACHE=1).

Библиотека собеса по DevOps
2
Что такое архитектура «Shared-Nothing»?

Это архитектура, в которой данные извлекаются из одного, не общего источника, обычно подключенного исключительно к одному узлу, в отличие от архитектур, в которых запрос может попасть на один из многих узлов, а данные будут извлечены из одного общего места (хранилища, памяти).

Библиотека собеса по DevOps
Расскажите подробнее о kube-scheduler.

Kube-scheduler распределяет и управляет рабочей нагрузкой на рабочих узлах. Он использует различные политики для выбора наиболее подходящего узла для pod на основе таких факторов, как требования к ресурсам, емкость узла и соответствие/несоответствие pod. Компонент kube-scheduler также отвечает за привязку выбранного узла к pod и обновление сервера Kubernetes API с обновленной информацией.

Библиотека собеса по DevOps