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

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

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

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

Примечание

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

  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. Получите новую лицензию.

  1. Откройте директорию license-dir в S3-хранилище.

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

  3. Если директория содержит файл license.txt:

    1. Обратитесь в службу поддержки On-Premise с описанием проблемы, чтобы частично аннулировать лицензию на стороне 2ГИС. Дождитесь подтверждения, что лицензия частично аннулирована.
    2. Удалите файл license.txt и переходите к следующему шагу.

    Если файл license.txt отсутствует, переходите к следующему шагу.

  4. Для версий 1.29.0 и выше:

    1. Перезапустите все поды сервиса лицензий.
    2. Получите новую лицензию.
  5. Для версий ниже 1.29.0:

    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. Перезапустите все поды сервиса лицензий.

Каждая лицензия является специфичной для окружения, где установлен комплекс 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. Установите сервис лицензий и запросите новую лицензию обычным способом.