Kaspersky Unified Monitoring and Analysis Platform

Установка KUMA в кластере Kubernetes с нуля

Распределенная установка KUMA происходит в несколько этапов:

  1. Проверка соблюдения аппаратных и программных требований, а также требований к установке KUMA.
  2. Подготовка контрольной машины.

    Контрольная машина используется в процессе установки программы: на ней распаковывается и запускаются файлы установщика.

  3. Подготовка целевых машин.

    На целевые машины устанавливаются компоненты программы.

  4. Подготовка файла инвентаря k0s.inventory.yml.

    Создайте файл инвентаря с описанием сетевой структуры компонентов программы. С помощью этого файла инвентаря установщик развернет KUMA.

  5. Установка программы.

    Установите программу и войдите в веб-интерфейс.

  6. Создание сервисов.

    Создайте клиентскую часть сервисов в веб-интерфейсе KUMA и установите серверную часть сервисов на целевых машинах.

    Сервисы KUMA следует устанавливать только после завершения установки KUMA. Мы рекомендуем устанавливать сервисы в такой последовательности: хранилище, коллекторы, корреляторы и агенты.

    При развертывании нескольких сервисов KUMA на одном хосте в процессе установки требуется указать уникальные порты для каждого сервиса с помощью параметров --api.port <порт>.

При необходимости вы можете изменить сертификат веб-консоли KUMA на сертификат своей компании.

В начало
[Topic 269330]

Подготовка контрольной машины

Чтобы подготовить контрольную машину для установки KUMA:

  1. Убедитесь, что соблюдены аппаратные и программные требования, а также требования к установке программы.
  2. Сгенерируйте SSH-ключ для аутентификации на SSH-серверах целевых машин, выполнив следующую команду:

    sudo ssh-keygen -f /root/.ssh/id_rsa -N "" -C kuma-ansible-installer

    Если на контрольной машине заблокирован доступ root по SSH, сгенерируйте SSH-ключ для аутентификации на SSH-серверах целевых машин с помощью пользователя из группы sudo:

    Если у пользователя нет прав sudo, добавьте пользователя в группу sudo:

    usermod -aG sudo user

    ssh-keygen -f /home/<имя пользователя из группы sudo>/.ssh/id_rsa -N "" -C kuma-ansible-installer

    В результате ключ будет сгенерирован и сохранен в домашней директории пользователя. Вам следует указать полный путь к ключу в файле инвентаря в значении параметра ansible_ssh_private_key_file, чтобы ключ был доступен при установке.

  3. Убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста и скопируйте SSH-ключ на каждую целевую машину, выполнив следующую команду:

    sudo ssh-copy-id -i /root/.ssh/id_rsa root@<имя хоста контрольной машины>

    Если на контрольной машине заблокирован доступ root по SSH и вы хотите использовать ключ SSH из домашней директории пользователя из группы sudo, убедитесь, что контрольная машина имеет сетевой доступ ко всем целевым машинам по имени хоста и скопируйте SSH-ключ на каждую целевую машину, выполнив следующую команду:

    ssh-copy-id -i /home/<имя пользователя из группы sudo>/.ssh/id_rsa <имя пользователя из группы sudo>@<имя хоста контрольной машины>

  4. Скопируйте архив с установщиком kuma-ansible-installer-ha-<номер версии>.tar.gz на контрольную машину и распакуйте его с помощью следующей команды:

    sudo tar -xpf kuma-ansible-installer-ha-<номер версии>.tar.gz

Контрольная машина готова для установки KUMA.

В начало
[Topic 269332]

Подготовка целевой машины

Чтобы подготовить целевую машину для установки компонентов KUMA:

  1. Убедитесь, что соблюдены аппаратные и программные требования, а также требования к установке.
  2. Установите имя хоста. Мы рекомендуем указывать FQDN. Например: kuma1.example.com.

    Не следует изменять имя хоста KUMA после установки: это приведет к невозможности проверки подлинности сертификатов и нарушит сетевое взаимодействие между компонентами программы.

  3. Зарегистрируйте целевую машину в DNS-зоне вашей организации для преобразования имен хостов в IP-адреса.

    Вариант с использованием файла /etc/hosts не применим для развертывания Ядра в Kubernetes.

  4. Чтобы получить имя хоста, которое потребуется указать при установке KUMA, выполните следующую команду и запишите результат:

    hostname -f

    Целевая машина должна быть доступна по этому имени для контрольной машины.

Целевая машина готова для установки компонентов KUMA.

В начало
[Topic 269334]

Подготовка файла инвентаря k0s.inventory.yml

Чтобы создать файл инвентаря k0s.inventory.yml:

  1. Перейдите в директорию установщика KUMA, выполнив следующую команду:

    cd kuma-ansible-installer-ha

  2. Скопируйте шаблон k0s.inventory.yml.template и создайте файл инвентаря с именем k0s.inventory.yml:

    cp k0s.inventory.yml.template k0s.inventory.yml

  3. Отредактируйте параметры файла инвентаря k0s.inventory.yml.

    Пример файла инвентаря для демонстрационной установки с Ядром в Kubernetes

    all:

    vars:

    ansible_connection: ssh

    ansible_user: root

    deploy_to_k8s: true

    need_transfer: false

    generate_etc_hosts: false

    airgap: true

    deploy_example_services: true

    kuma:

    children:

    kuma_core:

    hosts:

    kuma.example.com:

    mongo_log_archives_number: 14

    mongo_log_frequency_rotation: daily

    mongo_log_file_size: 1G

    kuma_collector:

    hosts:

    kuma.example.com:

    kuma_correlator:

    hosts:

    kuma.example.com:

    kuma_storage:

    hosts:

    kuma.example.com:

    shard: 1

    replica: 1

    keeper: 1

    kuma_k0s:

    children:

    kuma_control_plane_master_worker:

    hosts:

    kuma-cpw.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"

    Для демонстрационной установки следует указать deploy_example_services: true - KUMA развернет демонстрационные сервисы на указанных хостах и назначит роль шарда, реплики и кипера указанному хосту, настраивать эти роли для демонстрационной установки в веб-интерфейсе KUMA не нужно.

    Пример файла инвентаря для распределенной установки в отказоустойчивой конфигурации с 3 контроллерами, 2 рабочими узлами и 1 балансировщиком

    all:

    vars:

    ansible_connection: ssh

    ansible_user: root

    deploy_to_k8s: true

    need_transfer: false

    generate_etc_hosts: false

    airgap: true

    deploy_example_services: false

    kuma:

    children:

    kuma_core:

    hosts:

    kuma-core.example.com:

    mongo_log_archives_number: 14

    mongo_log_frequency_rotation: daily

    mongo_log_file_size: 1G

    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_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"

    Для такой конфигурации следует указать параметры need_transfer: false, airgap: true, deploy_example_services: false, в разделе kuma_storage перечислить серверы для кластера хранения. Роли шарда, реплики и кипера вы сможете назначить указанным в инвентаре серверам в веб-интерфейсе KUMA после завершения установки.

    Пример файла инвентаря для переноса Ядра в кластер Kubernetes из распределенной установки для обеспечения отказоустойчивости

    all:

    vars:

    ansible_connection: ssh

    ansible_user: root

    deploy_to_k8s: true

    need_transfer: true

    generate_etc_hosts: false

    airgap: true

    deploy_example_services: false

    kuma:

    children:

    kuma_core:

    hosts:

    kuma-core.example.com:

    mongo_log_archives_number: 14

    mongo_log_frequency_rotation: daily

    mongo_log_file_size: 1G

    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_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"

    В файле инвентаря k0s.inventory.yml в разделах kuma_core, kuma_ collector, kuma_correlator, kuma_storage укажите те же хосты, которые использовались в файле distributed.inventory.yml при обновлении KUMA с версии 2.1.3 до версии 3.0.3 или при новой установке программы. В файле инвентаря k0s.inventory.yml необходимо указать параметры deploy_to_k8s: true, need_transfer:true, airgap: true, deploy_example_services: false.

Мы рекомендуем сохранить файл инвентаря, который вы использовали для установки программы. С его помощью вы можете дополнить систему компонентами или удалить KUMA.

В начало
[Topic 269310]

Установка программы в отказоустойчивой конфигурации

Установка KUMA производится помощью инструмента Ansible и файла инвентаря k0s.inventory.yml. Установка производится с контрольной машины, при этом все компоненты KUMA устанавливаются на целевых машинах.

Чтобы установить KUMA:

  1. На контрольной машине войдите в папку с распакованным установщиком.

    cd kuma-ansible-installer-ha

  2. Поместите в папку <папка установщика>/roles/kuma/files/ файл с лицензионным ключом.

    Файл ключа должен иметь название license.key.

  3. Запустите установщик, находясь в папке с распакованным установщиком:

    sudo ./install.sh k0s.inventory.yml

  4. Примите условия Лицензионного соглашения.

    Если вы не примете условия Лицензионного соглашения, программа не будет установлена.

Компоненты KUMA будут установлены. На экране будет отображен URL веб-интерфейса KUMA и указано имя пользователя и пароль, которые необходимо использовать для доступа к веб-интерфейсу.

По умолчанию адрес веб-интерфейса KUMA – https://<FQDN или IP-адрес компонента core>:7220.

Учетные данные для входа по умолчанию (после первого входа требуется изменить пароль учетной записи admin):
- логин – admin
- пароль – mustB3Ch@ng3d!

Мы рекомендуем сохранить файл инвентаря, который вы использовали для установки программы. С его помощью вы можете дополнить систему компонентами или удалить KUMA.

В начало
[Topic 269337]