Файл инвентаря может содержать следующие блоки:
all
kuma
kuma_k0s
Для каждого хоста вам нужно указать FQDN в формате <имя хоста
>.<домен
> и при необходимости IPv4-адрес или IPv6-адрес. Имя домена Ядра KUMA и его поддомены не должны начинаться с цифры.
Пример: hosts: hostname.example.com: ip: 0.0.0.0 |
Блок all
В этом блоке вы можете указать переменные, которые распространяются на все хосты, указанные в файле инвентаря, включая неявно заданный localhost, на котором запущена установка. Переменные можно переопределять на уровне групп хостов или отдельных хостов.
Пример переопределения переменных в файле инвентаря
В таблице ниже приведен список возможных переменных в разделе vars
и их описание.
Список возможных переменных в разделе vars
Переменная |
Описание |
---|---|
|
Способ подключения к целевым машинам. Возможные значения:
|
|
Имя пользователя, от которого производится подключение к целевым машинам и установка компонентов. Если пользователь 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
В этом блоке вы можете указать параметры компонентов 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_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. |
|
|
Хост, выполняющий роль главного контроллера в кластере. |
Группы для указания главного контроллера. Вам нужно указать хост только для одной группы. |
|
Хост, совмещающий роль главного контроллера и рабочего узла в кластере. Для каждого контроллера кластера, совмещенного с рабочим узлом, в файле инвентаря должен быть указан параметр |
|
|
Хосты, выполняющие роль контроллера в кластере. |
Группы для указания второстепенных контроллеров. |
|
Хосты, совмещающие роль контроллера и рабочего узла в кластере. Для каждого контроллера кластера, совмещенного с рабочим узлом, в файле инвентаря должен быть указан параметр |
|
|
Рабочие узлы кластера. Для каждого рабочего узла в файле инвентаря должен быть указан параметр |
|
|
Если на рабочих узлах кластера одновременно используется несколько сетевых интерфейсов, переменная Например, если вы хотите использовать для связи между рабочими узлами кластера только сетевые интерфейсы с названием ethN (где N – это номер сетевого интерфейса), вы можете указать переменную следующим образом:
В таком случае кластер будет использовать сетевой интерфейс с названием, совпадающим с маской Если название сетевого интерфейса на каждом рабочем узле одинаково, например, eth0, вы можете указать переменную без маски:
Подробнее см. в документации Calico Open Source. |