Что из перечисленного НЕ является инструментом управления конфигурацией?
Anonymous Quiz
2%
Chef
2%
Puppet
1%
Ansible
95%
Jira
За что отвечает kube-proxy?
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
По-умолчанию, в Ansible все задачи из списка выполняются параллельно на всех хостах, которые указаны в hosts. Как сделать так, чтобы задачи выполнялись последовательно по хостам?
Необходимо установить параметр serial: 1, чтобы определить количество хостов, на которых будут выполняться паралелльно задачи. Значение 1 будет значить, что все задачи будут проходить параллельно по 1 хосту за раз.
Необходимо установить параметр serial: 1, чтобы определить количество хостов, на которых будут выполняться паралелльно задачи. Значение 1 будет значить, что все задачи будут проходить параллельно по 1 хосту за раз.
Состояние репозитория ушло на много коммитов вперед. Как откатить весь репозиторий к определенному коммиту?
Anonymous Quiz
56%
git reset --hard <tag/branch/commit hash>
8%
Нельзя это сделать
22%
git reset --soft <tag/branch/commit hash>
13%
git hardreset --hard --a <tag/branch/commit hash>
Какой тип базы данных использует Prometheus?
Prometheus использует TSDB (time series database).
Prometheus использует TSDB (time series database).
Как посмотреть нагрузку на диски?
Установить утилиту sysstat, проверить нагрузку на диски iostat -xtc.
Установить утилиту sysstat, проверить нагрузку на диски iostat -xtc.
Чем tag отличается от branch?
И tag и branch представляют собой указатели на коммиты.
Ветка представляет собой отдельный поток разработки, который может выполняться одновременно с другими разработками в той же кодовой базе. Коммит в ветке указывает на изменения, которые добавляются в новых коммитах
Тег представляет собой версию определенной ветки в определенный момент времени.
Tag представляет собой версию той или иной ветки в определенный момент времени. Branch представляет собой отдельный поток разработки, который может выполнятся одновременно с другими разработками в той же кодовой базе.
И tag и branch представляют собой указатели на коммиты.
Ветка представляет собой отдельный поток разработки, который может выполняться одновременно с другими разработками в той же кодовой базе. Коммит в ветке указывает на изменения, которые добавляются в новых коммитах
Тег представляет собой версию определенной ветки в определенный момент времени.
Tag представляет собой версию той или иной ветки в определенный момент времени. Branch представляет собой отдельный поток разработки, который может выполнятся одновременно с другими разработками в той же кодовой базе.
В каких случаях не отработает перенос пода на другую ноду?
Если на другой ноде нет ресурсов для размещения пода или нет сетевой доступности до ноды.
Если на другой ноде нет ресурсов для размещения пода или нет сетевой доступности до ноды.
В конфиге nginx некоторого проекта есть два десятка различных location, которые делятся на три базовых типа - memcache, dynamic, static. Лог проекта единый, но для анализа требуется различать записи в логе каким-либо способом. По именам файлов тип location различить нельзя, разделить на три лога также нельзя. Предложите решение.
Использовать вывод в syslog и определить tag. Например:
location /memcache {
access_log syslog:server=unix:/dev/log,tag=nginx_memcache;
error_log syslog:server=unix:/dev/log,tag=nginx_memcache;
}
location /dynamic {
access_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
error_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
}
/static - соответственно. Вывод в определенный файл syslog можно указать опцией :syslogtag
location /memcache {
access_log syslog:server=unix:/dev/log,tag=nginx_memcache;
error_log syslog:server=unix:/dev/log,tag=nginx_memcache;
}
location /dynamic {
access_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
error_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
}
/static - соответственно. Вывод в определенный файл syslog можно указать опцией :syslogtag
Для чего нужен terragrunt?
Terragrunt — это обертка для Terraform, позволяющая решать проблемы, связанные с масштабированием и переиспользованием кода для настройки инфраструктуры. Он позволяет повторно использовать конфигурационные параметры и поддерживает многоуровневые конфигурации и зависимости.
Terragrunt — это обертка для Terraform, позволяющая решать проблемы, связанные с масштабированием и переиспользованием кода для настройки инфраструктуры. Он позволяет повторно использовать конфигурационные параметры и поддерживает многоуровневые конфигурации и зависимости.
Что находится на master ноде?
Kube-apiserver отвечает за оркестрацию всех операций кластера.
Controller-manager (Node controller + Replication Controller) Controller отвечает за функции контроля за нодами, репликами.
ETCD cluster (распределенное хранилище ключ-значение) ETCD хранит информацию о кластере и его конфигурацию.
Kube-sheduler отвечает за планирование приложений и контейнеров на нодах.
По-умолчанию на master ноде не размещаются контейнеры приложений, но данный фунционал возможно настроить.
Kube-apiserver отвечает за оркестрацию всех операций кластера.
Controller-manager (Node controller + Replication Controller) Controller отвечает за функции контроля за нодами, репликами.
ETCD cluster (распределенное хранилище ключ-значение) ETCD хранит информацию о кластере и его конфигурацию.
Kube-sheduler отвечает за планирование приложений и контейнеров на нодах.
По-умолчанию на master ноде не размещаются контейнеры приложений, но данный фунционал возможно настроить.
Что такое роль в Ansible? Что содержит в себе Ansible роль?
Ansible роль представляет собой структурированный плейбук, содержащий, как минимум, набор задач (tasks) и дополнительно — обработчики событий (handlers), переменных (default и vars), файлов (files), шаблонов (templates), описание и зависимости (metadata) и тесты (tests).
Ansible роль представляет собой структурированный плейбук, содержащий, как минимум, набор задач (tasks) и дополнительно — обработчики событий (handlers), переменных (default и vars), файлов (files), шаблонов (templates), описание и зависимости (metadata) и тесты (tests).
Чем отличается COPY от ADD в Dockerfile?
Инструкция COPY копируют файлы и директории с хостовой машины внутрь контейнера, инструкция ADD копирует файлы и директории с хостовой машины внутрь контейнера и может распаковывать .tar архивы.
Инструкция COPY копируют файлы и директории с хостовой машины внутрь контейнера, инструкция ADD копирует файлы и директории с хостовой машины внутрь контейнера и может распаковывать .tar архивы.
Что находится на worker ноде?
Kubelet слушает инструкции от kube-apiserver и разворачивает или удаляет контейнеры на нодах.
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
На worker нодах по-умолчанию размещаются контейнеры приложений. На каждой ноде кластера устанавливается Docker или другая платформа контейнеризации (например RKT или containterd). На Master ноде также устанавливается Docker, если необходимо использовать компоненты Kubernetes в контейнерах.
Kubelet слушает инструкции от kube-apiserver и разворачивает или удаляет контейнеры на нодах.
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
На worker нодах по-умолчанию размещаются контейнеры приложений. На каждой ноде кластера устанавливается Docker или другая платформа контейнеризации (например RKT или containterd). На Master ноде также устанавливается Docker, если необходимо использовать компоненты Kubernetes в контейнерах.
Необходимо проходить по списку 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=
if [[ "${STATUS}" == "500" ]] || [[ "${STATUS}" == "400" ]]; then
echo "URL ${URL} unavailable!"
exit 1
else
echo "URL ${URL} available."
fi
done
}
checkUrls "${FILE_URLS}"
Список 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}"
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выполняет конструкция extends: .plan в gitlab CI?
extends используется для повторного использования секции пайплайна (аналог фунции). .plan указывает на имя повторяемой секции в пайплайне. Первым в шаге выполняется скрипт из extends.
extends используется для повторного использования секции пайплайна (аналог фунции). .plan указывает на имя повторяемой секции в пайплайне. Первым в шаге выполняется скрипт из extends.
Для чего в основном используется Docker?
Anonymous Quiz
1%
Контроль версий
2%
Непрерывная интеграция
96%
Контейнеризация
1%
Управление проектом
Почему DaemonSet не нужен scheduler?
DaemonSet гарантирует, что определенный под будет запущен на всех нодах кластера. При наличии DaemonSet в кластере на любой из существующих и будущих нод в кластере зарезервированы ресурсы для пода на ноде.
Здесь стоит сделать оговорку насчет того, что DaemonSet может работать не на всех нодах кластера, а на некоторых, выбранных, например, по nodeSelector. К примеру, у нас есть GPU ноды и нам нужно на все эти ноды задеплоить микросервис выполняющий вычисления на GPU.
DaemonSet гарантирует, что определенный под будет запущен на всех нодах кластера. При наличии DaemonSet в кластере на любой из существующих и будущих нод в кластере зарезервированы ресурсы для пода на ноде.
Здесь стоит сделать оговорку насчет того, что DaemonSet может работать не на всех нодах кластера, а на некоторых, выбранных, например, по nodeSelector. К примеру, у нас есть GPU ноды и нам нужно на все эти ноды задеплоить микросервис выполняющий вычисления на GPU.