Сервис лицензий | On-Premise | 2GIS Documentation
On-Premise

Продвинутые способы получения лицензии

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

Лицензия On-Premise привязана к сертификату сервера Kubernetes API, поэтому при обновлении этого сертификата вам необходимо получить новую лицензию On-Premise:

  1. Получите новый сертификат сервера Kubernetes API.

    Для получения сертификата обратитесь к администраторам вашей инфраструктуры или найдите под, в спецификации которого есть параметр automountServiceAccountToken: true (например, это любой под API карт, если этот сервис установлен в окружении On-Premise) и выполните следующую команду:

    cat /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    
  2. Откройте директорию license-dir в S3-хранилище.

  3. Откройте поддиректорию со старшим номером.

  4. Замените файл k8s-ca.crt на новый файл сертификата, сохранив имя файла.

  5. Получите новую лицензию.

  6. Перезапустите все поды сервиса лицензий.

Примечание

Чтобы избежать простоя сервиса, вы можете заранее получить новую лицензию для нового сертификата сервера Kubernetes API. В этом случае сервис лицензий автоматически распознает новую лицензию, когда сертификат обновится.

Если после обновления сертификата сервера Kubernetes API вы получили новую лицензию для старого сертификата, то шаги выше для вашего случая неактуальны. Чтобы получить новую лицензию для нового сертификата, сделайте следующее:

  1. Обратитесь в службу поддержки On-Premise с описанием проблемы, чтобы частично аннулировать лицензию на стороне 2ГИС. Дождитесь подтверждения, что лицензия частично аннулирована.
  2. Откройте директорию license-dir в S3-хранилище.
  3. Откройте поддиректорию со старшим номером и удалите файл license.txt.
  4. В той же поддиректории замените файл k8s-ca.crt на новый файл сертификата, сохранив имя файла.
  5. Получите новую лицензию.
  6. Перезапустите все поды сервиса лицензий.

Если в окружении используются два хоста с разными доступами (в S3 и в интернет), вы можете выполнить все шаги сразу на хосте с доступом в интернет. Формирование файлов для запроса лицензии в этот момент не требуется.

Каждая лицензия является специфичной для окружения, где установлен комплекс On-Premise. Если были утеряны данные хранилища для состояний сервиса лицензий (см. настройки persistence в конфигурационном файле для установки сервиса лицензий), вы не сможете использовать текущую лицензию или получить новую обычным способом.

Выполните следующие шаги:

  1. Обратитесь в службу поддержки On-Premise, чтобы аннулировать лицензию на стороне 2ГИС. Дождитесь подтверждения, что лицензия аннулирована.

  2. Удалите сервис лицензий из окружения, где установлен комплекс On-Premise.

  3. Внутри S3-хранилища удалите всё содержимое директории license-dir, кроме файла type (находится в корне директории).

    Если файл type случайно удалён, вы можете восстановить его командой dgctl pull с указанием аргумента --only-license. Если при этом в окружении нет хоста с доступом в интернет, используйте дополнительный хост для копирования файлов.

  4. Установите сервис лицензий и запросите новую лицензию обычным способом.

Только для типа лицензирования 2 (license.type: 2 в конфигурационном файле для установки сервиса лицензий).

Лицензия типа 2 является специфичной для физических узлов, на которых запущен сервис лицензий. Если один из узлов был потерян, получите новую лицензию следующим способом:

  1. Обратитесь в службу поддержки On-Premise, чтобы аннулировать лицензию на стороне 2ГИС. Дождитесь подтверждения, что лицензия аннулирована.

  2. Внутри S3-хранилища удалите директорию license-dir/1.

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

  4. Скопируйте недостающие файлы csr-N.csr и csr-N.signature из поддиректории license-dir со старшим номером в license-dir/1.

    N в номерах файлов — 0 или 1 в зависимости от того, какой узел был утерян.

  5. Внутри S3-хранилища удалите все директории кроме license-dir/1.

  6. Получите новую лицензию.

  7. Перезапустите все поды сервиса лицензий.

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

  1. Удалите сервис лицензий из окружения, где установлен комплекс On-Premise.

  2. (Если ключ не менялся) Обратитесь в службу поддержки On-Premise, чтобы аннулировать лицензию на стороне 2ГИС. Дождитесь подтверждения, что лицензия аннулирована.

  3. Внутри S3-хранилища удалите всё содержимое директории license-dir, кроме файла type (находится в корне директории).

    Если файл type случайно удалён, вы можете восстановить его командой dgctl pull с указанием аргумента --only-license. Если при этом в окружении нет хоста с доступом в интернет, используйте дополнительный хост для копирования файлов.

  4. Удалите директорию с данными для хранения состояний сервиса лицензий.

  5. Установите сервис лицензий и запросите новую лицензию обычным способом.