Установка сателлита в неинтерактивном режиме

Добавление TLS-сертификатов для подключения к основному экземпляру системы

После завершения установки основного экземпляра системы создается архив TLS-сертификатов $SETUP_ROOT_DIR/r-vision/nats-tls.tar.gz. Этот архив необходимо скопировать в каталог установки сателлита $SETUP_ROOT_DIR/r-vision до начала его установки.

Подготовка конфигурационного файла

Подготовьте конфигурационный файл для установщика:

  1. Создайте текстовый файл, в котором будут находиться переменные с параметрами установки. Формат указания переменных:

    <variable>=<value>

    Здесь:

    • <variable> — имя переменной;

    • <value> — значение переменной.

  2. Заполните конфигурационный файл. В файле можно указать переменные, приведенные в таблицах ниже.

    Если не указать переменную в файле, для нее будет установлено значение по умолчанию.
    Общие переменные скрипта evoctl
    Переменная Описание

    ANSIBLE_USER

    Имя пользователя, которое будет использоваться в Ansible для подключения к узлам кластера по SSH.

    ANSIBLE_PASSWORD

    Пароль пользователя, который будет использоваться в Ansible для подключения к узлам кластера по SSH.

    Если переменная не определена, подключение осуществляется по ключу. В этом случае необходимо определить переменную ANSIBLE_BECOME_PASSWORD.

    ANSIBLE_BECOME_PASSWORD

    Пароль для повышения привилегий пользователя ANSIBLE_USER через sudo.

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

    EVO_NAMESPACE

    Пространство имен (namespace) Kubernetes, в котором будет установлена система.

    Название пространства имен должно удовлетворять следующим требованиям:

    • Допустимые символы: a—​z, 0—​9, -.

    • Название не должно начинаться и заканчиваться дефисом.

    Переменные модуля Infra-Satellite
    Переменная Описание

    INFRA_NATS_STORAGE_SIZE

    Максимальный размер хранилища NATS в ГиБ, не менее 20 ГиБ. Указывается с единицами измерения Gi.

    Значение по умолчанию: 20Gi.

    INFRA_NATS_SPACE_ID

    Идентификатор пространства сателлита, которое будет использовать NATS.

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

    Требования к идентификатору пространства сателлита:

    • Допустимые символы: a—​z, A—​Z, 0—​9, -.

    • Идентификатор должен содержать не более 100 символов.

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

    INFRA_NATS_PORT

    Номер TCP-порта, по которому основной экземпляр системы будет подключаться к сателлиту. Данный порт будет открыт на всех узлах кластера сателлита.

    Допустимые значения номера порта подключения: 30000—​32767. Значение по умолчанию: 30072. Сателлиты могут использовать одинаковые порты при условии установки в разные кластеры Kubernetes.
    Сохраните номер порта, он понадобится для подключения к пространству сателлита из интерфейса системы.
    Переменные конфигурации сбора метрик и логов Vector
    Переменная Описание

    VECTOR_HOST_METRICS_MODE

    Источник метрик процессора, ОЗУ, диска и сети для демона Vector.

    Допустимые значения:

    • vector_host_metrics — демон Vector получает метрики напрямую с хоста, монтируя его директории /proc и /sys с помощью томов типа hostPath.

    • node_exporter — демон Vector обращается к сервису Prometheus Node Exporter. Тома типа hostPath не монтируются.

    VECTOR_WORKLOAD_METRICS_MODE

    Источник метрик процессора и ОЗУ подов сервисов для демона Vector.

    Допустимые значения:

    • cgroups — метрики контрольных групп (cgroups) собирает sidecar-контейнер, который монтирует директории /proc и /sys с помощью томов типа hostPath.

    • cadvisor — демон Vector обращается к компоненту Kubelet по порту 10250 и адресу /metrics/cadvisor. Тома типа hostPath не монтируются.

    VECTOR_LOGS_MODE

    Режим сбора логов хоста для демона Vector.

    Допустимые значения:

    • hostPath — демон Vector получает логи напрямую с хоста, монтируя его директории /var/log и /etc/localtime с помощью томов типа hostPath.

    • none — демон Vector не собирает логи. Тома типа hostPath не монтируются.

  3. Сохраните конфигурационный файл.

    Пример заполненного конфигурационного файла для установки сателлита
    ANSIBLE_USER=ansible_user
    ANSIBLE_PASSWORD=ansible_password
    EVO_NAMESPACE=evo-satellite
    
    INFRA_NATS_STORAGE_SIZE=20Gi
    INFRA_NATS_SPACE_ID=space-satellite
    INFRA_NATS_PORT=30072

Запуск установщика

Запустите установщик в неинтерактивном режиме, выполнив одну из нижеприведенных команд:

DEPLOY_SKIP_REGISTER=yes CTL_ENV_FILE=<path_to_env_file> evoctl instance install

Или:

CTL_ENV_FILE=<path_to_env_file> evoctl instance install --skip-register

Здесь:

  • <path_to_env_file> — путь к конфигурационному файлу.

Если не указать параметры DEPLOY_SKIP_REGISTER или --skip-register, сателлит будет готов к работе не сразу после установки, поскольку сервис evo.space.space-controller, регистрирующий образы его компонентов, будет запущен только после подключения основного экземпляра системы к сателлиту.

Рекомендуется указать параметры DEPLOY_SKIP_REGISTER или --skip-register и зарегистрировать образы вручную после завершения установки.

Завершение установки

После завершения установки в терминале отобразится сообщение, содержащее идентификатор пространства и номер порта установленного сателлита, например:

To add this Satellite as a new space of main instance use values:
  space id: space-satellite
  space port: 30072
Если вы отключали какие-либо сервисы во время аудита системного окружения, включите их.

Настройка mTLS-шифрования между основным экземпляром и сателлитом

По умолчанию после установки основного экземпляра системы и сателлита шифрование соединения между ними отключено.

При необходимости вы можете настроить шифрование соединения по протоколу mTLS. Для этого:

  1. Включите TLS-шифрование для пространств. Для этого:

    1. Подключитесь к терминалу master-узла кластера, в котором установлен основной экземпляр системы.

    2. Откройте ConfigMap space-manager-extravars:

      kubectl -n <namespace> edit configmap space-manager-extravars

      Здесь:

      • <namespace> — название пространства имен, в котором установлена система.

        Вы можете получить название пространства имен, в котором установлена система, с помощью утилиты evoctl.
    3. Установите для переменной NATS_CONFIGURATOR_USE_LEAF_TLS_FOR_SPACES значение "true".

    4. Сохраните изменения в ConfigMap.

    5. Перезапустите Deployment evo.space.space-manager:

      kubectl -n <namespace> rollout restart deployment evo.space.space-manager
  2. Задайте параметры TLS в ConfigMap nats-space-config. Для этого:

    1. Откройте ConfigMap nats-space-config:

      kubectl edit -n <namespace> configmaps nats-space-config -o yaml

      Здесь:

      • <namespace> — название пространства имен, в котором установлена система.

    2. В блоке leafnodes добавьте блок tls со следующим содержимым:

      "tls": {
        "ca_file": "/etc/nats/ca/ca.crt",
        "cert_file": "/etc/nats/tls/tls.crt",
        "key_file": "/etc/nats/tls/tls.key",
        "verify": true,
        "handshake_first": true
      }
      Пример измененного блока leafnodes
      "leafnodes": {
        "no_advertise": true,
        "port": 7422,
        "tls": {
          "ca_file": "/etc/nats/ca/ca.crt",
          "cert_file": "/etc/nats/tls/tls.crt",
          "key_file": "/etc/nats/tls/tls.key",
          "verify": true,
          "handshake_first": true
        }
      },
    3. Перезапустите StatefulSet nats-space:

      kubectl -n <namespace> rollout restart statefulset nats-space
  3. Повторите действия на шаге 2 в терминале master-узла кластера сателлита.

Подключение к пространству сателлита

Управление сателлитом осуществляется за счет запускаемых в нем сервисов через веб-интерфейс основного экземпляра системы. Чтобы подключиться к сателлиту, необходимо создать подключение к его пространству. Для этого:

  1. Войдите в веб-интерфейс основного экземпляра системы.

  2. Перейдите в раздел Настройки → Пространства и сервисы → Пространства.

  3. Нажмите на кнопку Создать (plus). Отобразится окно создания подключения.

  4. Введите идентификатор пространства сателлита в поле ID.

  5. Введите название подключения. Название может быть любым.

  6. В поле IP или домен введите IP-адрес или доменное имя (FQDN) одного из узлов кластера, в котором развернут сателлит.

  7. В поле Порт введите номер TCP-порта, указанного при установке сателлита.

  8. При необходимости введите описание подключения к пространству.

  9. Нажмите на кнопку Создать. Система создаст подключение к пространству и отобразит соответствующее уведомление. Подключение отобразится в списке раздела Настройки → Пространства и сервисы → Пространства.

У созданного подключения отобразится статус Подключается. По завершении подключения статус изменится на Активен.

Время на инициализацию подключения зависит загруженности кластеров и каналов связи и может достигать 5—​10 минут.

Регистрация образов компонентов сателлита

Завершив подключение основного экземпляра системы к сателлиту, зарегистрируйте образы компонентов сателлита. Для этого:

  1. Подключитесь к терминалу машины, с которой запускалась установка сателлита.

  2. Дождитесь запуска сервиса evo.space.space-controller. Для этого отследите его статус:

    kubectl -n <satellite_namespace> get pods -l app.kubernetes.io/name=space-controller ---watch

    Здесь:

    • <satellite_namespace> — название пространства имен, в котором установлен сателлит. Оно определено в переменной EVO_NAMESPACE.

  3. Когда под сервиса evo.space.space-controller перейдет в статус Running, выполните следующие действия:

    1. Чтобы остановить наблюдение за статусом сервиса evo.space.space-controller, нажмите на комбинацию клавиш CTRL+C.

    2. Чтобы зарегистрировать образы компонентов сателлита, выполните следующую команду:

      evoctl instance upload -n <satellite_namespace>

      Здесь:

      • <satellite_namespace> — название пространства имен, в котором установлен сателлит. Оно определено в переменной EVO_NAMESPACE.

Была ли полезна эта страница?

Обратная связь