Файл инвентаря может содержать следующие блоки:
allkumakuma_k0sДля каждого хоста вам нужно указать FQDN в формате <имя хоста>.<домен> и при необходимости IPv4-адрес или IPv6-адрес. Имя домена Ядра KUMA и его поддомены не должны начинаться с цифры.
Пример: hosts: hostname.example.com: ip: 0.0.0.0 |
Блок all
В этом блоке вы можете указать переменные, которые распространяются на все хосты, указанные в файле инвентаря, включая неявно заданный localhost, на котором запущена установка. Переменные можно переопределять на уровне групп хостов или отдельных хостов.
Пример переопределения переменных в файле инвентаря
В таблице ниже приведен список возможных переменных в разделе vars и их описание.
Список возможных переменных в разделе vars
Переменная |
Описание |
|---|---|
|
Способ подключения к целевым машинам. Возможные значения:
|
|
Переменная для указания нестандартного порта для подключения к удаленным хостам по SSH. Доступны следующие возможности настройки параметра
|
|
Имя пользователя, от которого производится подключение к целевым машинам и установка компонентов. Если пользователь root на целевых машинах заблокирован, вам нужно использовать имя пользователя, имеющего право на подключение по SSH и повышение привилегий через su или sudo. |
|
Переменная, определяющая, требуется ли повышать привилегии пользователя, от имени которого осуществляется установка компонентов KUMA. Возможные значения:
|
|
Способ повышения привилегий пользователя, от имени которого осуществляется установка компонентов KUMA. Вам нужно указать значение |
|
Путь к закрытому ключу в формате /<путь>/.ssh/id_rsa. Вам нужно указать эту переменную, если вы хотите указать файл ключа, отличный от файла ключа по умолчанию ~/.ssh/id_rsa. |
|
Переменная, определяющая, требуется ли разворачивать компоненты KUMA в кластере Kubernetes. Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение |
|
Переменная, определяющая, требуется ли переносить Ядро KUMA в новый кластер Kubernetes. Вам нужно указать эту переменную, только если для переменной Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение |
|
Переменная, определяющая, выполняет ли установщик шаги по настройке межсетевого экрана на хостах. Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение |
|
Переменная, определяющая, регистрируются ли машины в DNS-зоне вашей организации. Установщик автоматически дополнит файлы /etc/hosts на машинах, на которые устанавливаются компоненты KUMA, IP-адресами машин из файла инвентаря. Указанные IP-адреса должны быть уникальными. Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение При использовании |
|
Переменная, определяющая, создаются ли предустановленные сервисы при установке KUMA. Вам нужно указать эту переменную, если вы хотите создать демо-сервисы независимо от файла инвентаря single/distributed/k0s. Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение |
|
Переменная, определяющая, устанавливается ли KUMA в окружениях с ограниченными вычислительными ресурсами. Эта переменная отсутствует во всех шаблонах файла инвентаря. Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение |
|
Переменная, позволяющая определить размер тома Ядра KUMA для установки в кластере Kubernetes. Если значение переменной не задано, то для размера тома Ядра KUMA при установке будут принятые следующие значения по умолчанию:
Суффикс Gi обязателен для указания. |
|
Переменная, позволяющая определить размер тома сервиса Метрики для установки в кластере Kubernetes. Если значение переменной не задано, то для размера тома сервиса Метрики при установке будут приняты следующие значения по умолчанию:
Суффикс Gi обязателен для указания. |
|
Переменная, позволяющая определить срок ожидания копирования метрик в минутах из тома Ядра KUMA 3.4 в новый том метрик в KUMA 4.0. Значение по умолчанию: 120m. Суффикс m обязателен для указания. |
|
Переменная, позволяющая определить максимальный размер данных для передачи в одном пакете в сетевой среде без необходимости фрагментации в кластере Kubernetes. Для решения проблемы с избыточным повторением передачи пакетов или полным пропаданием связи внутри шифрованного канала мы рекомендуем указать значение параметра Если значение не задано, применяется автоматическое определение максимального размера данных на основании типов интерфейсов хостов. |
|
Переменная, позволяющая определить максимальное время в секундах, отведенное на создание резервной копии Ядра KUMA и отдельно на восстановление данных из резервной копии в кластере Kubernetes. Например, если вы указали значение 2700, это значит, что будет выделено 2700 секунд на создание резервной копии и 2700 секунд на восстановление из резервной копии. Если параметр не указан в файле инвентаря в секции vars, при автоматическом создании резервной копии Ядра KUMA и автоматическом восстановлении данных из резервной копии, будет принято значение по умолчанию. Значение по умолчанию: 1800 секунд. Если автоматическое создание резервной копии завершилось раньше указанного значения, скрипт обновления продолжает дальнейшую работу сразу. Изменять значение параметра в большую сторону имеет смысл, если создание резервной копии Ядра KUMA вручную занимает около 30 минут или больше. |
Блок kuma
В этом блоке вы можете указать параметры компонентов KUMA, развернутых вне кластера Kubernetes. Блок kuma может содержать следующие разделы:
vars – переменные, которые распространяются на все хосты, указанные в блоке kuma. children – группы параметров компонентов:kuma_core – параметры Ядра KUMA. raft_node_addr – адрес, который будет использоваться для кластера узлов с сервисом Ядра KUMA, должен быть публичным и известным для других узлов. После того, как Ядро KUMA было запущено в первый раз с этим адресом, адрес больше не может меняться в будущем для этого узла. Значение параметра следует указывать в следующем формате: <FQDN>:<порт>. Если значение параметра не указано явно, то в качестве <FQDN> по умолчанию принимается FQDN, где разворачивается Ядро KUMA, а <порт> - 7209. Параметр raft_node_addr следует задавать вместе с параметром raft_node_listen на каждом сервере с Ядром KUMA в том случае, если DNS настроен таким образом, что сервер содержит несколько FQDN. Необязательный параметр.raft_node_listen – адрес, на котором узел будет слушать сообщения от соседей по кластеру. Значение параметра следует указывать в следующем формате <IP-адрес сервера, на котором установлено Ядро KUMA в формате IPv4 или IPv6>:<порт>. Адрес может меняться. Параметр raft_node_listen следует задавать вместе с параметром raft_node_addr на каждом сервере с Ядром KUMA. Необязательный параметр.kuma_core_peers – параметры дополнительных Ядер KUMA. Установщик подготавливает серверы, перечисленные в группе kuma_core_peers, для последующей установки дополнительных сервисов Ядра KUMA. В этой группе можно указать только четное количество серверов. Если группа kuma_core_peers отсутствует в файле инвентаря или не заполнена, выполняется обычная процедура установки или обновления с одним Ядром KUMA. На каждом сервере в группе kuma_core_peers допускается установка только одного сервиса Ядра KUMA.Использование группы kuma_core_peers при разных вариантах использования установщика
raft_node_addr – адрес, который будет использоваться для кластера узлов с сервисом Ядра KUMA, должен быть публичным и известным для других узлов. После того, как Ядро KUMA было запущено в первый раз с этим адресом, адрес больше не может меняться в будущем для этого узла. Значение параметра следует указывать в следующем формате: <FQDN>:<порт>. Если значение параметра не указано явно, то в качестве <FQDN> по умолчанию принимается FQDN, где разворачивается Ядро KUMA, а <порт> - 7209. Параметр raft_node_addr следует задавать вместе с параметром raft_node_listen на каждом сервере с Ядром KUMA в том случае, если DNS настроен таким образом, что сервер содержит несколько FQDN. Необязательный параметр.raft_node_listen – адрес, на котором узел будет слушать сообщения от соседей по кластеру. Значение параметра следует указывать в следующем формате <IP-адрес сервера, на котором установлено Ядро KUMA в формате IPv4 или IPv6>:<порт>. Адрес может меняться. Параметр raft_node_listen следует задавать вместе с параметром raft_node_addr на каждом сервере с Ядром KUMA. Необязательный параметр.kuma_metrics – параметры сервиса Метрики. Вы можете указать только один хост. При переносе Ядра KUMA в кластер Kubernetes необходимо предварительно перенести сервис Метрики на один хост с Ядром KUMA при помощи установщика expand.sh и файла инвентаря expand.inventory.yml. При переносе Ядра KUMA в кластер Kubernetes выполняется проверка на наличие запущенного сервиса Метрики на этом хосте. Если сервис Метрики не найден, вернется ошибка и перенос будет прерван. При переносе Ядра KUMA в кластер Kubernetes данные метрик переносятся в кластер.kuma_collector – параметры коллекторов KUMA. Вы можете указать несколько хостов.kuma_correlator – параметры корреляторов KUMA. Вы можете указать несколько хостов.kuma_storage – параметры узлов хранилища KUMA. Вы можете указать несколько хостов, а также идентификаторы шарда, реплики и кипера для хостов с помощью следующих параметров:shard – идентификатор шарда.replica – идентификатор реплики.keeper – идентификатор кипера.Указанные идентификаторы шарда, реплики и кипера используются, только если вы разворачиваете демо-сервисы при новой установке KUMA. В остальных случаях используются идентификаторы шарда, реплики и кипера, которые вы указали в веб-интерфейсе KUMA при создании набора ресурсов для хранилища.
Блок kuma_k0s
В этом блоке вы можете указать параметры кластера Kubernetes, использование которого обеспечивает отказоустойчивость KUMA. Этот блок указан только в файле инвентаря, основанном на шаблоне файла инвентаря k0s.inventory.yml.template.
Для тестовой и демонстрационной установки в окружениях с ограниченными вычислительными ресурсами вам нужно указать переменную low_resources: true в блоке all. В этом случае минимальный объем директории для установки ядра KUMA будет снижен до 4 ГБ и ограничения для других вычислительных ресурсов не будут указаны.
Для каждого хоста в блоке kuma_k0s должен быть указан уникальный FQDN и IP-адрес с помощью переменной ansible_host, кроме хоста в разделе kuma_lb. Для хоста в разделе kuma_lb должен быть указан только FQDN. Хосты в группах не должны повторяться.
Для демонстрационной установки допустимо совместить контроллер с рабочим узлом. Такая конфигурация не обеспечивает отказоустойчивости Ядра KUMA и служит для демонстрации возможностей или проверки программной среды.
Минимальная конфигурация для обеспечения отказоустойчивости составляет 3 контроллера, 2 рабочих узла и 1 балансировщик нагрузки nginx. Для промышленной эксплуатации рекомендуется использовать отдельные рабочие узлы и контроллеры. Если контроллер кластера находится под рабочей нагрузкой и под (англ. pod) с Ядром KUMA размещается на контроллере, выключение контроллера приведет к полной потере доступа к Ядру KUMA.
Блок kuma_k0s может содержать следующие разделы:
vars – переменные, которые распространяются на все хосты, указанные в блоке kuma.сhildren – параметры кластера Kubernetes, использование которого обеспечивает отказоустойчивость KUMA.В таблице ниже приведен список возможных переменных в разделе vars и их описание.
Список возможных переменных в разделе vars
Группа переменных |
Описание |
|
|---|---|---|
|
FQDN балансировщика нагрузки. Вы можете установить балансировщик нагрузки nginx или сторонний TCP-балансировщик нагрузки. Если вы устанавливаете балансировщик нагрузки nginx, вы можете указать параметр Если вы устанавливаете сторонний TCP-балансировщик нагрузки, вам нужно вручную настроить его до установки KUMA. |
|
|
Хост, выполняющий роль главного контроллера в кластере. |
Группы для указания главного контроллера. Вам нужно указать хост только для одной группы. |
|
Хост, совмещающий роль главного контроллера и рабочего узла в кластере. Для каждого контроллера кластера, совмещенного с рабочим узлом, в файле инвентаря должен быть указан параметр |
|
|
Хосты, выполняющие роль контроллера в кластере. |
Группы для указания второстепенных контроллеров. |
|
Хосты, совмещающие роль контроллера и рабочего узла в кластере. Для каждого контроллера кластера, совмещенного с рабочим узлом, в файле инвентаря должен быть указан параметр |
|
|
Рабочие узлы кластера. Для каждого рабочего узла в файле инвентаря должен быть указан параметр |
|
|
Параметры сервиса Метрики. Вы можете указать только один хост, на котором установлено Ядро KUMA. При переносе Ядра KUMA из распределенной установки в кластер Kubernetes необходимо предварительно перенести сервис Метрики на один хост с Ядром KUMA при помощи установщика expand.sh и файла инвентаря expand.inventory.yml. При переносе Ядра KUMA в кластер Kubernetes выполняется проверка на наличие запущенного сервиса Метрики на этом хосте. Если сервис Метрики не найден, вернется ошибка и перенос будет прерван. При переносе Ядра KUMA в кластер Kubernetes данные метрик переносятся в кластер. |
|
|
Если на рабочих узлах кластера одновременно используется несколько сетевых интерфейсов, переменная Например, если вы хотите использовать для связи между рабочими узлами кластера только сетевые интерфейсы с названием ethN (где N – это номер сетевого интерфейса), вы можете указать переменную следующим образом:
В таком случае кластер будет использовать сетевой интерфейс с названием, совпадающим с маской Если название сетевого интерфейса на каждом рабочем узле одинаково, например, eth0, вы можете указать переменную без маски:
Подробнее см. в документации Calico Open Source. |
|