Процесс установки сателлита

В данном разделе описаны действия по выполнению новой установки сателлита.

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

Установка состоит из следующих этапов:

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

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

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

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

DEPLOY_SKIP_REGISTER=yes bash ./evo.platform_<version>_satellite.run

Или:

evoctl instance install --skip-register

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

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

  • Если в каталоге с установщиком есть файлы переменных окружения, но вам нужно настроить параметры установки вручную, запустите установщик с переменной SKIP_ENV_FILE:

    SKIP_ENV_FILE=true DEPLOY_SKIP_REGISTER=yes bash ./evo.platform_<version>_satellite.run
  • Переменные DEPLOY_SKIP_REGISTER и SKIP_ENV_FILE можно использовать совместно. Порядок их указания не важен.

Установщик выведет следующие сведения:

Выбор файла с переменными окружения

Если в каталоге с установщиком находятся один или несколько файлов с переменными окружения и при его запуске не была указана переменная SKIP_ENV_FILE, установщик загрузит файл в соответствии со следующей логикой:

  • Если файл в каталоге только один, установщик будет использовать переменные из этого файла.

  • Если файлов в каталоге больше одного, отобразится окно с их списком, в котором потребуется выбрать нужный файл.

    select env file

Этапы установщика, на которых требуется ввести переменные, указанные в файле конфигурации, будут пропущены. Например, если в файле указаны переменные ANSIBLE_USER и ANSIBLE_PASSWORD или ANSIBLE_BECOME_PASSWORD, этап ввода учетных данных Ansible будет пропущен.

Выбор режима работы установщика

На этапе Select action выберите действие New installation in an existing K8s cluster:

satellite install select action

Выбор пространства имен Kubernetes

Выберите пространство имен (namespace) Kubernetes, в которое будет установлен сателлит, на этапе Kubernetes cluster namespace to install.

satellite install create new k8s space

  • Если требуется создать новое пространство имен, выберите опцию create new и введите название пространства.

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

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

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

  • Если требуется установить сателлит в пространство имен, уже существующее в кластере Kubernetes, выберите его в списке.

    Пространство имен по умолчанию default создается автоматически при развертывании кластера Kubernetes и может быть использовано для установки компонентов системы.

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

    • ingress-nginx;

    • kube-node-lease;

    • kube-prometheus-stack;

    • kube-public;

    • kube-system;

    • local-path-provisioner;

    • metallb-system;

    • piraeus-datastore.

Настройка метода загрузки Docker-образов

На этапе Images upload выберите метод загрузки Docker-образов компонентов системы:

  • Direct upload to cluster nodes by Ansible (need SSH-access) — загрузка образов непосредственно на узлы кластера с помощью Ansible.

    Чтобы загрузка образов непосредственно на узлы кластера прошла успешно, удостоверьтесь, что перед установкой системы был настроен SSH-доступ к worker-узлам кластера.
  • Upload to existing images registry — загрузка образов во внешний Docker registry (реестр Docker-образов).

  • Skip images uploading — пропуск загрузки образов, если они уже были ранее загружены на узлы кластера.

images upload method

Если выбрана опция Upload to existing images registry, потребуется указать следующие данные для подключения к Docker registry:

  • Адрес Docker registry, в который будут загружены образы компонентов системы, в следующем формате:

    <registry_host>:<port>/<subpath>

    Здесь:

    • <registry_host> — доменное имя или IP-адрес Docker registry.

    • <port> (опционально) — порт для отправки запросов к Docker registry.

    • <subpath> (опционально) — путь к подкаталогу Docker registry.

    images registry path

  • Требуется ли использовать TLS-шифрование при загрузке образов установщиком.

    images registry use tls

  • Логин пользователя, от имени которого осуществляется доступ к Docker registry. Если аутентификация в Docker registry не требуется, поле следует оставить пустым.

    images registry user

  • Если аутентификация в Docker registry требуется — пароль пользователя, от имени которого осуществляется доступ к Docker registry.

    images registry pass

Настройка Ansible

Задайте параметры Ansible на этапе Ansible creds:

  1. Задайте имя пользователя.

    install ansible creds username

  2. Выберите метод аутентификации: по паролю или через ключ.

    install ansible creds auth method

  3. Если выбрана аутентификация по паролю, задайте и подтвердите пароль пользователя.

Выбор варианта настройки объекта StorageClass

Класс хранилища (объект StorageClass) обеспечивает механизм предоставления томов постоянного хранения данных для приложений в кластере Kubernetes.

Данный этап установки доступен, если настроено более одного объекта StorageClass в кластере, в котором производится установка. Иначе всем хранилищам сателлита будет назначен StorageClass по умолчанию.

На этапе Storage class:

  1. Выберите вариант настройки StorageClass one selected SC to all charts.

    install storage class setup

  2. Выберите StorageClass хранилища NATS для управления пространствами.

Настройка NATS

Для NATS по умолчанию назначается объект StorageClass local-path-provisioner, если не был установлен другой провайдер хранилища (storage provider).

На этапе NATS satellite setup:

  1. Укажите максимальный размер хранилища NATS, не менее 20 ГБ.

    Если в кластере не установлен провайдер хранилища или установлен local-path-provisioner, максимальный размер хранилища указывать не требуется.

    satellite install nats max storage size

  2. Укажите уникальный идентификатор пространства сателлита.

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

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

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

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

    satellite install nats space name

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

    Допустимые значения номера порта подключения: 30000—​32767. Значение по умолчанию: 30072. Сателлиты могут использовать одинаковые порты при условии установки в разные кластеры Kubernetes.

    satellite install nats port

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

Настройка сбора метрик и логов с помощью Vector

На этапе Space: Vector observability настройте источники метрик для демона Vector и режим сбора логов хоста:

  1. Выберите источник метрик процессора, ОЗУ, диска и сети. Доступные варианты:

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

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

    vector host metrics source

  2. Выберите источник метрик процессора и ОЗУ подов сервисов:

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

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

    vector workload metrics source

  3. Выберите режим сбора логов хоста:

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

    • sidecar — демон Vector не собирает логи. Сервисы отправляют логи в sidecar-контейнер.

    vector host logs

  4. Выберите, требуется ли добавить liveness-пробы для контейнера vector-sidecar в подах сервисов:

    • false — не добавлять liveness-пробы; сбой контейнера vector-sidecar не приведет к перезапуску всего пода.

    • true — добавить liveness-пробы; сбой контейнера vector-sidecar может привести к перезапуску всего пода.

    vector liveness probes

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

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

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-шифрование для подключения шлюзов к NATS. Для этого:

    1. Откройте ConfigMap space-controller-extravars:

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

      Здесь:

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

    2. Установите для переменной NATS_CONFIGURATOR_USE_LEAF_TLS_FOR_SPACES значение "true".

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

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

      kubectl -n <namespace> rollout restart deployment evo.space.space-controller
  3. Задайте параметры 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
  4. Повторите действия на шаге 3 в терминале 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

    Здесь:

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

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

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

      evoctl instance upload -n <satellite_namespace>

      Здесь:

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

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