Библиотека собеса по DevOps | вопросы с собеседований
3.06K subscribers
120 photos
4 videos
2 files
142 links
Вопросы с собеседований по DevOps и ответы на них.

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Зачем нужна система контроля версий в DevOps?

Система контроля версий предоставляет командам возможность независимо работать над различными частями проекта и без труда объединять их по завершении работы. Она также сохраняет все предыдущие версии, что может быть полезно, если необходимо вернуться к ранним версиям и управлять изменениями в исходном коде на протяжении времени.
Что такое метаданные?

Данные о данных. По сути, это описание типа информации, которую будут содержать базовые данные.
Что представляют собой Puppet Modules и как они отличаются от Puppet Manifests?

Модуль Puppet — это набор данных (шаблонов, файлов и т. д.) и манифестов, организованных в определённую структуру каталогов. Они помогают упорядочить код Puppet, позволяя разделять его на различные манифесты. Применение модулей Puppet для организации большинства манифестов считается наилучшей практикой. В отличие от манифестов, которые представляют собой программы Puppet с кодом, модули предлагают более структурированный подход к организации кода.
Расскажите о метках в Kubernetes.

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

Это тип метаданных, которые работают через концепцию пары ключ-значение, прикрепленной к объектам. Во многих случаях они также используются для определения «идентифицирующих аспектов» объекта, в основном для помощи пользователю на более позднем этапе. Кроме того, поскольку они не подразумевают семантику для Kubernetes по умолчанию, они не изменяют напрямую никакую функциональность, как другие метаданные.
Перечислите некоторые начальные пространства имен, с которых стартует Kubernetes.

Вот некоторые начальные пространства имен:

Default это пространство имен включено Kubernetes, чтобы пользователи могли начать использовать новый кластер без необходимости предварительного создания пространства имен.

Kube-system: это пространство имен для объектов, созданное системой Kubernetes.

Kube-public: это пространство имен доступно для чтения как всем клиентам. Оно зарезервировано в основном для использования в кластере.
🤖 Что такое «совместное использование пространства»?

В некоторой степени это понятие противоположно разделению времени. При разделении времени ресурс некоторое время используется одной сущностью, а затем тот же ресурс может использоваться другой сущностью. При разделении пространства оно делится между несколькими сущностями, но таким образом, что не передается между ними. Оно используется одной сущностью, пока эта сущность не решит избавиться от него. Например, в хранилище файл полностью ваш, пока вы не решите удалить его.
Что представляют собой модули Filebeat?

Модули Filebeat — это заранее настроенные решения для работы с конкретными типами источников логов, такими как Traefik, Fargate и HAProxy. Они значительно упрощают процесс настройки передачи логов с помощью Filebeat, предлагая различные конфигурации в зависимости от источника данных.
Что нужно сделать для обновления кластера Kubernetes?

Необходимо обновить компоненты кластера. Конкретные инструкции по обновлению зависят от конкретной настройки и конфигурации, используемых в вашем кластере.

Вот процесс обновления:

— Сначала найдите нужную целевую версию и план обновления;
— Сохраните важные данные и конфигурацию, сделав резервную копию;
— Теперь обновите компоненты плоскости управления;
— Также обновите рабочие узлы, один за другим, с помощью процесса последовательного обновления;
— Наконец, проверьте, правильно ли функционируют кластер и компоненты.
✍️ Что такое плейсхолдеры в YAML?

Они позволяют ссылаться на значения вместо их непосредственной записи и используются следующим образом:
username: {{ my.user_name }}
✍️ Каковы ограничения использования пространства имен по умолчанию?

Использование только пространства имен по умолчанию затрудняет отслеживание всех приложений, которыми вы можете управлять в своем кластере с течением времени. Пользовательские пространства имен помогают группировать приложения в логические группы, например, одно пространство имен для программ мониторинга, а другое — для приложений безопасности и т. д. Это упрощает управление и мониторинг различных приложений в вашем кластере и контроль доступа к определенным ресурсам.
Как правильно хранить переменные в Terraform?

Основной конфигурационный файл называется main.tf, и он описывает, какие инстансы необходимо создать. Файл variables.tf содержит описание переменных и их значения по умолчанию. Если значение по умолчанию не указано, переменная считается обязательной. Файл terraform.tfvars используется для задания значений переменных и часто содержит конфиденциальную информацию, поэтому его следует осторожно загружать в публичные репозитории. Файл outputs.tf описывает выходные переменные. Этот файл не является обязательным, но очень полезен для выделения необходимых параметров из созданного инстанса, например, IP-адреса облачного инстанса.
Вы получаете ошибку «504 Gateway Timeout» от HTTP-сервера. Что это значит?

Сервер не получил своевременного ответа от другого сервера, с которым он взаимодействует.
За что отвечает StatefulSet?

StatefulSet контролирует развертывание и масштабирование группы подов, обеспечивая сохранение их состояния и характеристик.

Например, если требуется, чтобы поды запускались в определенном порядке на тех же узлах, имели доступ к постоянному хранилищу (PVC) или специальные сетевые идентификаторы, то используется StatefulSet.

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

Трехуровневая архитектура — это шаблон, используемый в разработке программного обеспечения для проектирования и структурирования приложений.

Он делит приложение на 3 взаимосвязанных слоя: представление, бизнес-логика и хранилище данных.

Плюсы:
— Масштабируемость
— Безопасность
— Возможность повторного использования

Минусы:
— Сложность
— Накладные расходы на производительность
— Стоимость и время разработки
Что такое API-шлюз?

API-шлюз подобен привратнику, который контролирует, как различные части взаимодействуют друг с другом и как происходит обмен информацией между ними.

API-шлюз обеспечивает единую точку входа для всех клиентов и может выполнять несколько задач, включая маршрутизацию запросов к соответствующей внутренней службе, балансировку нагрузки, безопасность и аутентификацию, ограничение скорости, кэширование и мониторинг.

Используя API-шлюз, организации могут упростить управление своими API, обеспечить согласованную безопасность и управление, а также улучшить производительность и масштабируемость своих внутренних сервисов. Они также широко используются в архитектурах микросервисов, где есть много небольших независимых служб, к которым необходимо получать доступ разным клиентам.
Что такое Ingress и для чего он необходим?

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

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

Вот популярные команды Docker:
1. docker push: загрузка репозитория или образа в Registry.
2. docker run: выполнение команды в новом контейнере.
3. docker pull: загрузка репозитория или образа из Registry.
4. docker start: запуск одного или нескольких контейнеров.
5. docker stop: остановка одного или нескольких контейнеров.
6. docker search: поиск образов на DockerHub.
7. docker commit: сохранение изменений в новый образ.
🤖 Каковы недостатки монолитной архитектуры?

— Не подходит для частого изменения кода и возможности развертывания новых функций
— Не предназначена для современной инфраструктуры (например, публичных облаков)
— Масштабирование команды для работы с монолитной архитектурой более сложное
— Если один компонент в этой архитектуре выходит из строя, то выходит из строя все приложение.
🦾 Как можно распределять права в Kubernetes?

В Kubernetes для управления правами применяется механизм RBAC (Role Based Access Control). В этой системе выделяются три ключевых объекта: пользователь (user) или учетная запись сервиса (service account), которые определяют субъект доступа; роль (role) или кластерная роль (clusterRole), задающие разрешения; и привязка роли (roleBinding) или кластерной роли (clusterRoleBinding) к конкретному субъекту.