.. _Install_FaultTolerance_Minikube_StartingIntegrationApi: Запуск Integration API ###################### Подготовка к запуску ******************** Сначала необходимо извлечь docker-образ Integration API из дистрибутива. Далее запускаем терминал и выполняем в нем команды, настраивающие его на работу с хранилищем docker-образов в Minikube: .. code-block:: console minikube docker-env eval $(minikube -p minikube docker-env) .. note:: В примерах будет использоваться полный номер версии TerraLink xDE Pro 3.2403.23145.1, который включает номер релиза и билда. В случае использования другого номера версии, замените его во всех приведенных примерах команд и содержимого файлов. Загрузка docker-образа ********************** Переходим в папку ``Integration.REST`` и загружаем docker-образ из tar-файла: .. code-block:: console docker load -i terralink-xdepro-integration-rest-3.2403.23145.1.tar Результатом выполнения команды будет сообщение о загрузке образа: .. image:: ./img/IntegrationApi-LoadImage.png :align: center :alt: Загрузка docker-образа из файла :scale: 56 Создание приложения ******************* Создаем файл ``rest-api-integration-deployment.yaml`` с конфигурацией приложения: .. code-block:: yaml apiVersion: apps/v1 kind: Deployment metadata: name: rest-api-integration labels: name: xdepro component: rest-api-integration spec: replicas: 3 selector: matchLabels: name: xdepro component: rest-api-integration template: metadata: labels: name: xdepro component: rest-api-integration spec: volumes: - name: rest-api-integration-logs-storage persistentVolumeClaim: claimName: logs-pv-claim containers: - name: rest-api-integration-container image: terralink-xdepro-integration-rest:3.2403.23145.1 imagePullPolicy: Never ports: - containerPort: 80 volumeMounts: - mountPath: "/usr/share/TerraLink.xDEPro" name: rest-api-integration-logs-storage env: - name: DOCFLOW_CONNECTION_STRING value: "User ID=LOGIN;Password=PASSWORD;Host=100.100.100.100;Port=5434;Database=DOCFLOW_DB;MaxPoolSize=500" - name: DOCFLOW_LOG_TARGET value: "AsyncFileLog" - name: DOCFLOW_PROVIDER_NAME value: "Npgsql" - name: DOCFLOW_APPSETTINGS value: "{\"Jwt\":{\"Key\":\"831AAB02-60F3-440F-80F6-2D5C5DAC2DCA\"},\"DataProtectionKey\":\"d416487fa3ac4a1ca4e342b8c5971d18\"}" В этой конфигурации: - создается 3 реплики; - в папку ``/usr/share/TerraLink.xDEPro`` монтируется том с логами ``logs-pv-claim``, созданный ранее; - для создания контейнеров используется образ ``terralink-xdepro-integration-rest:3.2403.23145.1``; - параметры контейнера указываются в переменных окружения, хранящихся в поле ``.spec.template.spec.containers.env``. Применяем конфигурацию: .. code-block:: console kubectl apply -f rest-api-integration-deployment.yaml Создание сервиса **************** Теперь необходимо создать сервис для доступа к приложению извне. Для этого создадим файл ``rest-api-integration-service.yaml`` с конфигурацией сервиса: .. code-block:: yaml apiVersion: v1 kind: Service metadata: name: rest-api-integration-service labels: name: xdepro component: rest-api-integration spec: selector: name: xdepro component: rest-api-integration ports: - port: 80 targetPort: 80 type: LoadBalancer Применяем конфигурацию: .. code-block:: console kubectl apply -f rest-api-integration-service.yaml Получение адреса сервиса ************************ Получаем адрес, по которому можно подключиться к созданному сервису: .. code-block:: console minikube service --url rest-api-integration-service Команда выведет URL-адрес сервиса, который будет использован другими модулями для подключения к Integration API. .. image:: ./img/IntegrationApi-GetServiceUrl.png :align: center :alt: Получение url сервиса :scale: 65 Проверка установленного компонента ********************************** В качестве проверки успешности запуска Integration API можно открыть страницу в браузере и перейти по полученному адресу. Должна открыться страница :ref:`Swagger UI `.