Библиотека задач по DevOps | тесты, код, задания
2.87K subscribers
130 photos
3 videos
2 files
234 links
Задачи и тесты по DevOps для тренировки и обучения.

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

Наши каналы: https://t.me/proglibrary/9197

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
December 12, 2023
В каких случаях не отработает перенос пода на другую ноду?

Если на другой ноде нет ресурсов для размещения пода или нет сетевой доступности до ноды.
December 13, 2023
December 14, 2023
December 15, 2023
December 16, 2023
Что такое роль в Ansible? Что содержит в себе Ansible роль?

Ansible роль представляет собой структурированный плейбук, содержащий, как минимум, набор задач (tasks) и дополнительно — обработчики событий (handlers), переменных (default и vars), файлов (files), шаблонов (templates), описание и зависимости (metadata) и тесты (tests).
December 17, 2023
Чем отличается COPY от ADD в Dockerfile?

Инструкция COPY копируют файлы и директории с хостовой машины внутрь контейнера, инструкция ADD копирует файлы и директории с хостовой машины внутрь контейнера и может распаковывать .tar архивы.
December 19, 2023
December 20, 2023
Необходимо проходить по списку URL'ов и проверять их доступность. Условия:
Список URL'ов находится в файле /urls.txt;
Доступный URL - значит код ответа не 5XX или 4XX;
Проверка должна быть оформлена в виде функции bash, которая должна вызываться внутри скрипта;
Функция должна принимать в качестве входного параметра путь к файлу с URL'ами;
При любом ответе недоступности от сервиса - прерывать дальнейшую проверку. Временное ограничение 20 мин.

Скрипт проверки. Запускать ./script.sh <путь до файла с URLs>

#!/usr/bin/env bash

set -xueo pipefail

FILE_URLS=${1:-}
if [[ -z "${FILE_URLS}" ]]; then
echo "File with URLs list do not defined."
exit 1
fi

function checkUrls() {
local URLS=$1
for URL in $(cat $URLS); do
STATUS=curl -LI "${URL}" -o /dev/null -w '%{http_code}' -s
if [[ "${STATUS}" == "500" ]] || [[ "${STATUS}" == "400" ]]; then
echo "URL ${URL} unavailable!"
exit 1
else
echo "URL ${URL} available."
fi
done
}

checkUrls "${FILE_URLS}"
December 21, 2023
December 22, 2023
Как установить Kubernetes?

1. Следовать инструкции установки kubeadm.

2. Установка с использованием kubespray.
December 23, 2023
Почему DaemonSet не нужен scheduler?

DaemonSet гарантирует, что определенный под будет запущен на всех нодах кластера. При наличии DaemonSet в кластере на любой из существующих и будущих нод в кластере зарезервированы ресурсы для пода на ноде.

Здесь стоит сделать оговорку насчет того, что DaemonSet может работать не на всех нодах кластера, а на некоторых, выбранных, например, по nodeSelector. К примеру, у нас есть GPU ноды и нам нужно на все эти ноды задеплоить микросервис выполняющий вычисления на GPU.
December 26, 2023
Администратор выполняет команду kubectl apply -f deployment.yaml. Опишите по порядку что происходит в каждом из узлов Kubernetes и в каком порядке.

Клиент kubectl обращается к мастер-серверу kube-apiserver (стандартно на порт 6443), адрес мастер сервер задан в .config файле. В запросе передаётся информация, которую нужно применить в кластере обращения. API-сервер обращается к etcd хранилищу, проверяет наличие конфигурации запрашиваемого ресурса. Если конфигурация в хранилище etcd есть, то API-сервер сравнивает новую конфигурацию с конфигурацией в базе данных: если конфигурация одинаковая, то изменений в кластере не происходит, клиенту отдается ответ об успешности запрашиваемого действия, если конфигурации нет в etcd, то если требуемое действие касается создания сущностей, которые требуют ресурсов кластера (создания подов, хранилища pv/pvc и т.д.), scheduler проверяет возможность размещения подов на нодах и после чего происходит создание подов, при этом controll-manager контроллирует создание нужного поличества реклик сущности. После создания трубуемой сущности, происходит запись в etcd, controll-manager продолжает отслеживать состояние сущностей на протяжении всего цикла его жизни.
December 27, 2023
Чем отличается StatefulSet от Deployment?

Deployment — ресурс Kubernetes предназнваенный для развертывания приложения без сохранения состояния. При использовании PVC все реплики будут использовать один и тот же том, и ни один из них не будет иметь собственного состояния.

StatefulSet — поддерживают состояние приложений за пределами жизненного цикла отдельных модулей pod, например для хранилища. Используется для приложений с отслеживанием состояния, каждая реплика модуля будет иметь собственное состояние и будет использовать свой собственный том.
December 28, 2023
В чем разница между DevOps и Agile?

Agile — это набор ценностей и принципов в отношении производственных методов, таких как разработка ПО. Например, если у кого-то есть идея и он хочет преобразовать концепцию в практическое программное обеспечение, он может использовать ценности и принципы Agile для достижения этой цели. Однако программное обеспечение может работать только на компьютере разработчика или в тестовой среде. Чтобы легко и быстро перенести ПО в производственную инфраструктуру безопасным и простым способом, им потребуются инструменты и методы DevOps.
December 29, 2023
Поговорим о сервере логов Nagios.

Целью сервера логов Nagios является упрощение поиска данных логов. Таким образом, он лучше всего подходит для таких задач, как настройка оповещений, уведомлений о потенциальных угрозах, запрос данных логов и быстрый аудит системы. Использование сервера логов Nagios позволяет разместить все данные логов в одном месте с высокой доступностью.
December 30, 2023
Что такое Memcached?

Memcached — это система кеширования объектов в памяти с открытым исходным кодом. Она широко используется для ускорения процесса извлечения данных SQL, предотвращая повторное выполнение длительных запросов при параллельной обработке.
January 5, 2024
Как Chef используется в качестве инструмента СМ?

Chef считается одним из предпочтительных отраслевых инструментов Configuration Management. Например, Facebook перенесла инфраструктуру на платформу Chef. Объясните, как эта система управления конфигурациями, написанная на Ruby, поможет избежать задержек, автоматизируя процессы. Chef позволяет интегрироваться с облачными платформами, настраивать новые системы, а также предоставляет библиотеки, которые могут быть развернуты в рамках ПО.
January 6, 2024
Почему компонент непрерывного тестирования так важен для DevOps?

По сути, непрерывное тестирование позволяет разработчикам выполнять постоянное тестирование после каждого обновления, внедрённого в системe. Делая это, весь процесс становится более плавным – в других случаях, все тесты будут проходить до окончания периода спринта, что выльется в падения и следовательно трату времени.
January 7, 2024