Параметры конфигурации KUMA в файле инвентаря
Файл инвентаря может содержать следующие блоки:
Для каждого хоста вам нужно указать FQDN в формате <имя хоста>.<домен> и при необходимости IPv4-адрес или IPv6-адрес. Имя домена Ядра KUMA и его поддомены не должны начинаться с цифры.
Пример:
hosts:
hostname.example.com:
ip: 0.0.0.0
|
Блок all
В этом блоке вы можете указать переменные, которые распространяются на все хосты, указанные в файле инвентаря, включая неявно заданный localhost, на котором запущена установка. Переменные можно переопределять на уровне групп хостов или отдельных хостов.
Пример переопределения переменных в файле инвентаря
all:
vars:
ansible_connection: ssh
deploy_to_k8s: False
need_transfer: False
airgap: True
deploy_example_services: True
kuma:
vars:
ansible_become: true
ansible_user: i.ivanov
ansible_become_method: su
ansible_ssh_private_key_file: ~/.ssh/id_rsa
children:
kuma_core:
vars:
ansible_user: p.petrov
ansible_become_method: sudo
В таблице ниже приведен список возможных переменных в разделе vars и их описание.
Список возможных переменных в разделе vars
Переменная
|
Описание
|
ansible_connection
|
Способ подключения к целевым машинам.
Возможные значения:
ssh – подключение к удаленным хостам по SSH. Если вы используете нестандартный порт для подключения к удаленным хостам по SSH, укажите значения переменной ansible_port.local – подключение к удаленным хостам не производится.
|
ansible_port
|
Переменная для указания нестандартного порта для подключения к удаленным хостам по SSH. Доступны следующие возможности настройки параметра ansible_port:
- Если на всех хостах, перечисленных в файле инвентаря, используется один и тот же нестандартный порт, укажите значение переменной
ansible_port в файле инвентаря в блоке all в секции vars. Пример файла инвентаря distributed.inventory.yml с одним нестандартным портом для всех хостов
all:
vars:
ansible_port: 2222
deploy_to_k8s: false
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
kuma:
vars:
ansible_connection: ssh
ansible_user: root
children:
kuma_core:
hosts:
kuma-core-1.example.com:
ip: 0.0.0.0
kuma_collector:
hosts:
kuma-collector-1.example.com:
ip: 0.0.0.0
kuma_correlator:
hosts:
kuma-correlator-1.example.com:
ip: 0.0.0.0
kuma_storage:
hosts:
kuma-storage-cluster1-server1.example.com:
ip: 0.0.0.0
shard: 1
replica: 1
keeper: 0
kuma-storage-cluster1-server2.example.com:
ip: 0.0.0.0
shard: 1
replica: 2
keeper: 0
kuma-storage-cluster1-server3.example.com:
ip: 0.0.0.0
shard: 2
replica: 1
keeper: 0
kuma-storage-cluster1-server4.example.com:
ip: 0.0.0.0
shard: 2
replica: 2
keeper: 0
kuma-storage-cluster1-server5.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 1
kuma-storage-cluster1-server6.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 2
kuma-storage-cluster1-server7.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 3
- Если вы используете нестандартный порт для группы хостов, укажите значение переменной для группы хостов в файле инвентаря в блоке
kuma или kuma_k0s в секции vars. Например:Пример файла инвентаря distributed.inventory.yml с одним нестандартным портом для группы хостов хранилища
all:
vars:
deploy_to_k8s: false
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
kuma:
vars:
ansible_connection: ssh
ansible_user: root
children:
kuma_core:
hosts:
kuma-core-1.example.com:
ip: 0.0.0.0
kuma_collector:
hosts:
kuma-collector-1.example.com:
ip: 0.0.0.0
kuma_correlator:
hosts:
kuma-correlator-1.example.com:
ip: 0.0.0.0
kuma_storage:
vars:
ansible_port: 2222
hosts:
kuma-storage-cluster1-server1.example.com:
ip: 0.0.0.0
shard: 1
replica: 1
keeper: 0
kuma-storage-cluster1-server2.example.com:
ip: 0.0.0.0
shard: 1
replica: 2
keeper: 0
kuma-storage-cluster1-server3.example.com:
ip: 0.0.0.0
shard: 2
replica: 1
keeper: 0
kuma-storage-cluster1-server4.example.com:
ip: 0.0.0.0
shard: 2
replica: 2
keeper: 0
kuma-storage-cluster1-server5.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 1
kuma-storage-cluster1-server6.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 2
kuma-storage-cluster1-server7.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 3
Пример файла инвентаря k0s.inventory.yml с одним нестандартным портом для всех хостов в секции kuma_control_plane
all:
vars:
ansible_connection: ssh
ansible_user: root
deploy_to_k8s: true
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
metrics_disk_request: 150Gi
core_disk_request: 100Gi
kuma:
children:
kuma_collector:
hosts:
kuma-collector.example.com:
kuma_correlator:
hosts:
kuma-correlator.example.com:
kuma_storage:
hosts:
kuma-storage-cluster1.server1.example.com
kuma-storage-cluster1.server2.example.com
kuma-storage-cluster1.server3.example.com
kuma-storage-cluster1.server4.example.com
kuma-storage-cluster1.server5.example.com
kuma-storage-cluster1.server6.example.com
kuma-storage-cluster1.server7.example.com
kuma_k0s:
children:
kuma_lb:
hosts:
kuma-lb.example.com:
kuma_managed_lb: true
kuma_control_plane_master:
hosts:
kuma_cpm.example.com:
ansible_host: 10.0.1.10
kuma_control_plane_master_worker:
kuma_control_plane:
vars:
ansible_port: 2222
hosts:
kuma_cp2.example.com:
ansible_host: 10.0.1.11
kuma_cp3.example.com:
ansible_host: 10.0.1.12
kuma_control_plane_worker:
kuma_worker:
hosts:
kuma-w1.example.com:
ansible_host: 10.0.2.11
extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true"
kuma-w2.example.com:
ansible_host: 10.0.2.12
extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true"
Пример файла инвентаря distributed.inventory.yml для отказоустойчивой установки с Ядром KUMA в кластере Raft с одним нестандартным портом для всех хостов с Ядром KUMA
all:
vars:
deploy_to_k8s: false
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
kuma:
vars:
ansible_connection: ssh
ansible_user: root
children:
kuma_core:
hosts:
kuma-core-1.example.com:
ip: 0.0.0.0
raft_node_addr: ""
ansible_port: 2222
kuma_core_peers:
vars:
ansible_port: 2222
hosts:
kuma-core-2.example.com:
ip: 0.0.0.0
kuma-core-3.example.com:
ip: 0.0.0.0
kuma_collector:
hosts:
kuma-collector-1.example.com:
ip: 0.0.0.0
kuma_correlator:
hosts:
kuma-correlator-1.example.com:
ip: 0.0.0.0
kuma_storage:
hosts:
kuma-storage-cluster1-server1.example.com:
ip: 0.0.0.0
shard: 1
replica: 1
keeper: 0
kuma-storage-cluster1-server2.example.com:
ip: 0.0.0.0
shard: 1
replica: 2
keeper: 0
kuma-storage-cluster1-server3.example.com:
ip: 0.0.0.0
shard: 2
replica: 1
keeper: 0
kuma-storage-cluster1-server4.example.com:
ip: 0.0.0.0
shard: 2
replica: 2
keeper: 0
kuma-storage-cluster1-server5.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 1
kuma-storage-cluster1-server6.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 2
kuma-storage-cluster1-server7.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 3
- Если вы используете отдельный нестандартный порт для каждого хоста для подключения по SSH, укажите значение переменной ansible_port для каждого хоста в файле инвентаря.
Пример файла инвентаря distributed.inventory.yml с отдельным нестандартным портом для каждого хоста хранилища
all:
vars:
deploy_to_k8s: false
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
kuma:
vars:
ansible_connection: ssh
ansible_user: root
children:
kuma_core:
hosts:
kuma-core-1.example.com:
ip: 0.0.0.0
kuma_collector:
hosts:
kuma-collector-1.example.com:
ip: 0.0.0.0
kuma_correlator:
hosts:
kuma-correlator-1.example.com:
ip: 0.0.0.0
kuma_storage:
hosts:
kuma-storage-cluster1-server1.example.com:
ansible_port: 2222
ip: 0.0.0.0
shard: 1
replica: 1
keeper: 0
kuma-storage-cluster1-server2.example.com:
ansible_port: 2223
ip: 0.0.0.0
shard: 1
replica: 2
keeper: 0
kuma-storage-cluster1-server3.example.com:
ansible_port: 2224
ip: 0.0.0.0
shard: 2
replica: 1
keeper: 0
kuma-storage-cluster1-server4.example.com:
ansible_port: 2225
ip: 0.0.0.0
shard: 2
replica: 2
keeper: 0
kuma-storage-cluster1-server5.example.com:
ansible_port: 2226
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 1
kuma-storage-cluster1-server6.example.com:
ansible_port: 2227
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 2
kuma-storage-cluster1-server7.example.com:
ansible_port: 2228
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 3
Пример файла инвентаря k0s.inventory.yml с отдельным нестандартным портом для каждого хоста в группе kuma_control_plane
all:
vars:
ansible_connection: ssh
ansible_user: root
deploy_to_k8s: true
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
metrics_disk_request: 150Gi
core_disk_request: 100Gi
kuma:
children:
kuma_collector:
hosts:
kuma-collector.example.com:
kuma_correlator:
hosts:
kuma-correlator.example.com:
kuma_storage:
hosts:
kuma-storage-cluster1.server1.example.com
kuma-storage-cluster1.server2.example.com
kuma-storage-cluster1.server3.example.com
kuma-storage-cluster1.server4.example.com
kuma-storage-cluster1.server5.example.com
kuma-storage-cluster1.server6.example.com
kuma-storage-cluster1.server7.example.com
kuma_k0s:
children:
kuma_lb:
hosts:
kuma-lb.example.com:
kuma_managed_lb: true
kuma_control_plane_master:
hosts:
kuma_cpm.example.com:
ansible_host: 10.0.1.10
kuma_control_plane_master_worker:
kuma_control_plane:
hosts:
kuma_cp2.example.com:
ansible_port: 2222
ansible_host: 10.0.1.11
kuma_cp3.example.com:
ansible_port: 2223
ansible_host: 10.0.1.12
kuma_control_plane_worker:
kuma_worker:
hosts:
kuma-w1.example.com:
ansible_host: 10.0.2.11
extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true"
kuma-w2.example.com:
ansible_host: 10.0.2.12
extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true"
Пример файла инвентаря distributed.inventory.yml для отказоустойчивой установки с Ядром KUMA в кластере Raft с отдельным портом для каждого хоста с Ядром KUMA
all:
vars:
deploy_to_k8s: false
need_transfer: false
generate_etc_hosts: false
deploy_example_services: false
no_firewall_actions: false
kuma:
vars:
ansible_connection: ssh
ansible_user: root
children:
kuma_core:
hosts:
kuma-core-1.example.com:
ip: 0.0.0.0
raft_node_addr: ""
ansible_port: 2222
kuma_core_peers:
hosts:
kuma-core-2.example.com:
ip: 0.0.0.0
ansible_port: 2223
kuma-core-3.example.com:
ip: 0.0.0.0
ansible_port: 2224
kuma_collector:
hosts:
kuma-collector-1.example.com:
ip: 0.0.0.0
kuma_correlator:
hosts:
kuma-correlator-1.example.com:
ip: 0.0.0.0
kuma_storage:
hosts:
kuma-storage-cluster1-server1.example.com:
ip: 0.0.0.0
shard: 1
replica: 1
keeper: 0
kuma-storage-cluster1-server2.example.com:
ip: 0.0.0.0
shard: 1
replica: 2
keeper: 0
kuma-storage-cluster1-server3.example.com:
ip: 0.0.0.0
shard: 2
replica: 1
keeper: 0
kuma-storage-cluster1-server4.example.com:
ip: 0.0.0.0
shard: 2
replica: 2
keeper: 0
kuma-storage-cluster1-server5.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 1
kuma-storage-cluster1-server6.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 2
kuma-storage-cluster1-server7.example.com:
ip: 0.0.0.0
shard: 0
replica: 0
keeper: 3
|
ansible_user
|
Имя пользователя, от которого производится подключение к целевым машинам и установка компонентов.
Если пользователь root на целевых машинах заблокирован, вам нужно использовать имя пользователя, имеющего право на подключение по SSH и повышение привилегий через su или sudo.
|
ansible_become
|
Переменная, определяющая, требуется ли повышать привилегии пользователя, от имени которого осуществляется установка компонентов KUMA.
Возможные значения:
true – вам нужно указать это значение, если для переменной ansible_user вы не указали значение root.false.
|
ansible_become_method
|
Способ повышения привилегий пользователя, от имени которого осуществляется установка компонентов KUMA.
Вам нужно указать значение su или sudo, если для переменной ansible_user вы не указали значение root.
|
ansible_ssh_private_key_file
|
Путь к закрытому ключу в формате /<путь>/.ssh/id_rsa. Вам нужно указать эту переменную, если вы хотите указать файл ключа, отличный от файла ключа по умолчанию ~/.ssh/id_rsa.
|
deploy_to_k8s
|
Переменная, определяющая, требуется ли разворачивать компоненты KUMA в кластере Kubernetes.
Возможные значения:
false – это значение указано в шаблонах файла инвентаря single.inventory.yml и distributed.inventory.yml.true – это значение указано в шаблоне файла инвентаря k0s.inventory.yml.
Если вы не укажете эту переменную, по умолчанию будет использовано значение false.
|
need_transfer
|
Переменная, определяющая, требуется ли переносить Ядро KUMA в новый кластер Kubernetes.
Вам нужно указать эту переменную, только если для переменной deploy_to_k8s вы указали значение true.
Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение false.
|
no_firewall_actions
|
Переменная, определяющая, выполняет ли установщик шаги по настройке межсетевого экрана на хостах.
Возможные значения:
true – при запуске установщик не выполняет шаги по настройке межсетевого экрана на хостах.false – при запуске установщик выполняет шаги по настройке межсетевого экрана на хостах. Это значение указано во всех шаблонах файла инвентаря.
Если вы не укажете эту переменную, по умолчанию будет использовано значение false.
|
generate_etc_hosts
|
Переменная, определяющая, регистрируются ли машины в DNS-зоне вашей организации.
Установщик автоматически дополнит файлы /etc/hosts на машинах, на которые устанавливаются компоненты KUMA, IP-адресами машин из файла инвентаря. Указанные IP-адреса должны быть уникальными.
Возможные значения:
Если вы не укажете эту переменную, по умолчанию будет использовано значение false.
При использовании generate_etc_hosts: true в файле инвентаря для отказоустойчивой конфигурации нужно обязательно указать IP-адрес балансировщика в переменной ansible_host для хоста балансировщика в секции kuma_lb.
|
deploy_example_services
|
Переменная, определяющая, создаются ли предустановленные сервисы при установке KUMA.
Вам нужно указать эту переменную, если вы хотите создать демо-сервисы независимо от файла инвентаря single/distributed/k0s.
Возможные значения:
false – предустановленные сервисы не создаются при установке KUMA. Это значение указано во всех шаблонах файла инвентаря.true – предустановленные сервисы создаются при установке KUMA.
Если вы не укажете эту переменную, по умолчанию будет использовано значение false.
|
low_resources
|
Переменная, определяющая, устанавливается ли KUMA в окружениях с ограниченными вычислительными ресурсами.
Эта переменная отсутствует во всех шаблонах файла инвентаря.
Возможные значения:
false – KUMA устанавливается для промышленной эксплуатации. В этом случае установщик проверяет требования рабочих узлов (процессор, ОЗУ и свободное дисковое пространство) в соответствии с аппаратными и программными требованиями. Если требования не выполняются, установка прерывается с сообщением об ошибке.true – KUMA устанавливается в окружениях с ограниченными вычислительными ресурсами. В этом случае минимальный объем директории для установки Ядра KUMA на хосте составляет 4 ГБ. Ограничения для других вычислительных ресурсов отсутствуют.
Если вы не укажете эту переменную, по умолчанию будет использовано значение false.
|
core_disk_request
|
Переменная, позволяющая определить размер тома Ядра KUMA для установки в кластере Kubernetes. Если значение переменной не задано, то для размера тома Ядра KUMA при установке будут принятые следующие значения по умолчанию:
- Если
low_resources=false, размер тома по умолчанию - 512Gi. - Если
low_resources=true, размер тома по умолчанию - 4Gi.
Суффикс Gi обязателен для указания.
|
metrics_disk_request
|
Переменная, позволяющая определить размер тома сервиса Метрики для установки в кластере Kubernetes. Если значение переменной не задано, то для размера тома сервиса Метрики при установке будут приняты следующие значения по умолчанию:
- Если
low_resources=false, размер тома по умолчанию - 80Gi. - Если
low_resources=true, размер тома по умолчанию - 4Gi.
Суффикс Gi обязателен для указания.
|
metrics_transfer_job_timeout
|
Переменная, позволяющая определить срок ожидания копирования метрик в минутах из тома Ядра KUMA 3.4 в новый том метрик в KUMA 4.0.
Значение по умолчанию: 120m.
Суффикс m обязателен для указания.
|
Блок 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 при разных вариантах использования установщика
Вариант использования установщика
|
Группа kuma_core_peers в файле инвентаря есть
|
Группы kuma_core_peers в файле инвентаря нет или группа не заполнена
|
Установка с помощью установщика install.sh
|
Серверы из группы подготавливаются к запуску на них сервиса Ядра KUMA. На сервере из группы kuma_core устанавливается сервис kuma-core-00000000-0000-0000-0000-000000000000 (в веб-интерфейсе отображается как core-1). На всех серверах из группы kuma_core_peers последовательно устанавливаются и запускаются сервисы kuma-core-UID (в веб-интерфейсе отображаются как core-<FQDN>), подключаемые к сервису core-1. Все дополнительные сервисы так же подключаются к mongoDB, запущенной на сервере с core-1, поэтому mongoDB связывается со всеми IP-адресами сервера с core-1 и на межсетевом экране открывается доступ к порту 27017/tcp.
|
Выполняется штатная установка с одним сервисом core-1 и одним сервисом метрик на сервере из группы kuma_core.
|
Обновление с версии 3.4.x с помощью установщика install.sh
|
Серверы из группы kuma_core_peers подготавливаются к запуску сервиса Ядра KUMA. Сервисы Ядра KUMA на них не устанавливаются. Вы можете позднее создать дополнительные сервисы Ядра KUMA в веб-интерфейсе и установить их на подготовленные серверы.
|
Выполняется обычное обновление, прежние сервисы метрик заменяются новым, запущенным на сервере из группы kuma_core.
|
Расширение установки с помощью установщика expand.sh
|
В существующей установке можно создать или расширить кластер Raft. Для этого нужно создать файл инвентаря expand.inventory.yml, но заполнить в нём только группу kuma_core_peers. После запуска установщика expand.sh с файлом инвентаря expand.inventory.yml нужно вручную создать в веб-интерфейсе сервисы Ядра KUMA и установить их на подготовленные установщиком серверы. После расширения кластера Raft следует актуализировать группу kuma_core_peers в файле инвентаря distributed.inventory.yml на случай обновления 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_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
|
|
|
Группа переменных
|
Описание
|
kuma_lb
|
FQDN балансировщика нагрузки. Вы можете установить балансировщик нагрузки nginx или сторонний TCP-балансировщик нагрузки.
Если вы устанавливаете балансировщик нагрузки nginx, вы можете указать параметр kuma_managed_lb = true, чтобы автоматически настроить балансировщик нагрузки nginx при установке KUMA, открыть на хосте балансировщика нагрузки nginx необходимые сетевые порты (6443, 8132, 9443, 7209, 7210, 7220, 7222, 7223, 7226), а также выполнить перезагрузку для применения изменений.
Если вы устанавливаете сторонний TCP-балансировщик нагрузки, вам нужно вручную настроить его до установки KUMA.
|
kuma_control_plane_master
|
Хост, выполняющий роль главного контроллера в кластере.
|
Группы для указания главного контроллера. Вам нужно указать хост только для одной группы.
|
kuma_control_plane_master_worker
|
Хост, совмещающий роль главного контроллера и рабочего узла в кластере. Для каждого контроллера кластера, совмещенного с рабочим узлом, в файле инвентаря должен быть указан параметр extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true".
|
kuma_control_plane
|
Хосты, выполняющие роль контроллера в кластере.
|
Группы для указания второстепенных контроллеров.
|
kuma_control_plane_worker
|
Хосты, совмещающие роль контроллера и рабочего узла в кластере. Для каждого контроллера кластера, совмещенного с рабочим узлом, в файле инвентаря должен быть указан параметр extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true".
|
kuma_worker
|
Рабочие узлы кластера. Для каждого рабочего узла в файле инвентаря должен быть указан параметр extra_args: "--labels=kaspersky.com/kuma-core=true,kaspersky.com/kuma-ingress=true,node.longhorn.io/create-default-disk=true".
|
ipAutodetectionMethod
|
Если на рабочих узлах кластера одновременно используется несколько сетевых интерфейсов, переменная ipAutodetectionMethod позволяет вам задать маску названия сетевого интерфейса, который должен использоваться для взаимодействия между рабочими узлами кластера.
Например, если вы хотите использовать для связи между рабочими узлами кластера только сетевые интерфейсы с названием ethN (где N – это номер сетевого интерфейса), вы можете указать переменную следующим образом:
kuma_k0s:
vars:
ip_autodetection_method: "interface=eth.*"
В таком случае кластер будет использовать сетевой интерфейс с названием, совпадающим с маской eth.*.
Если название сетевого интерфейса на каждом рабочем узле одинаково, например, eth0, вы можете указать переменную без маски:
kuma_k0s:
vars:
ip_autodetection_method: "interface=eth0"
Подробнее см. в документации Calico Open Source.
|
В начало