Развертывание в Kubernetes с помощью Helm

Helm — это средство упаковки с открытым исходным кодом, которое помогает установить приложения Kubernetes и управлять их жизненным циклом. Оно позволяет управлять диаграммами Kubernetes, которые являются пакетами предварительно настроенных ресурсов Kubernetes.

В этой статье описаны действия по развертыванию в Kubernetes компонента локального шлюза службы "Управление API" Azure с помощью Helm.

Важно!

Поддержка образов контейнеров локального шлюза azure Управление API версии 0 и версии 1 прекращается 1 октября 2023 г. вместе с соответствующим API конфигурации версии 1. Используйте наше руководство по миграции , чтобы использовать локальный шлюз версии 2.0.0 или более поздней версии с API конфигурации версии 2. Дополнительные сведения см. в нашей документации по устареению.

Примечание

Также можно развернуть локальный шлюз в кластере Kubernetes с поддержкой Azure Arc в качестве расширения кластера.

Доступность

Важно!

Эта функция доступна в ценовых категориях Премиум и Разработка управления API.

Предварительные требования

  • Создайте кластер Kubernetes или получите доступ к существующему кластеру.

    Совет

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

Добавление репозитория Helm

  1. Добавьте службу "Управление API" Azure в качестве нового репозитория Helm.

    helm repo add azure-apim-gateway https://azure.github.io/api-management-self-hosted-gateway/helm-charts/
    
  2. Обновите репозиторий, чтобы получить последние диаграммы Helm.

    helm repo update
    
  3. Проверьте конфигурацию Helm, отобразив список всех доступных диаграмм.

    $ helm search repo azure-apim-gateway
    NAME                                            CHART VERSION   APP VERSION     DESCRIPTION
    azure-apim-gateway/azure-api-management-gateway 1.0.0           2.0.0           A Helm chart to deploy an Azure API Management ...
    

Развертывание локального шлюза в Kubernetes

  1. Выберите Gateways (Шлюзы) в разделе Deployment and infrastructure (Развертывание и инфраструктура).

  2. Выберите ресурс локального шлюза, который нужно развернуть.

  3. Выберите Deployment (Развертывание).

  4. Новый маркер в текстовом поле Token (Маркер) был создан автоматически с использованием значений Expiry (Срок действия) и Secret Key (Ключ секрета) по умолчанию. При необходимости измените одно или оба значения и нажмите кнопку Generate (Создать), чтобы создать токен.

  5. Запишите токен и URL-адрес конфигурации

  6. Установка локального шлюза с помощью диаграммы Helm

    helm install azure-api-management-gateway \
                 --set gateway.configuration.uri='<your configuration url>' \
                 --set gateway.auth.key='<your token>' \
                 azure-apim-gateway/azure-api-management-gateway
    
  7. Выполните команду. Команда указывает кластеру AKS сделать следующее:

    • загрузить образ локального шлюза из Microsoft Container Registry и запустить его как контейнер;
    • настроить контейнер и открыть доступ к портам HTTP (8080) и HTTPS (8081).

    Важно!

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

    Например, его можно предоставить доступ к нему с помощью подсистемы балансировки нагрузки, добавив --set service.type=LoadBalancer

  8. Выполните команду ниже, чтобы проверить, работает ли модуль pod шлюза. Используемое вами имя модуля pod будет другим.

    kubectl get pods
    NAME                                           READY     STATUS    RESTARTS   AGE
    azure-api-management-gateway-59f5fb94c-s9stz   1/1       Running   0          1m
    
  9. Выполните следующую команду, чтобы проверить, работает ли модуль pod шлюза. Используемые вами имя службы и IP-адреса будут другими.

    kubectl get services
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)               AGE
    azure-api-management-gateway   ClusterIP   10.0.229.55     <none>        8080/TCP,8081/TCP     1m
    
  10. Вернитесь на портал Azure и убедитесь, что развернутый узел шлюза сообщает о работоспособном состоянии.

Совет

Используйте команду kubectl logs <gateway-pod-name> для просмотра моментального снимка журнала локального шлюза.

Дальнейшие действия