Implementación en Kubernetes con Helm

Helm es una herramienta de empaquetado de código abierto que ayuda a instalar y administrar el ciclo de vida de las aplicaciones de Kubernetes. Permite administrar gráficos de Kubernetes, que son paquetes de recursos de Kubernetes preconfigurados.

En este artículo se proporcionan los pasos para implementar un componente de puerta de enlace autohospedada de Azure API Management en un clúster de Kubernetes mediante Helm.

Importante

El 1 de octubre de 2023 finaliza la compatibilidad con las imágenes de contenedor de la versión 0 y la versión 1 de la puerta de enlace autohospedada de Azure API Management, junto con su correspondiente Configuration API v1. Use nuestra guía de migración para usar la puerta de enlace autohospedada v2.0.0 o posterior con Configuration API v2. Obtenga más información en nuestra documentación de desuso

Nota

También puede implementar una puerta de enlace autohospedada en un clúster de Kubernetes habilitado para Azure Arc como una extensión de clúster.

Disponibilidad

Importante

Esta característica está disponible únicamente en los niveles Premium y Desarrollador de API Management.

Para ver la disponibilidad de características en los niveles v2 (versión preliminar), consulte la información general de los niveles v2.

Requisitos previos

  • Cree un clúster de Kubernetes u obtenga acceso a uno existente.

    Sugerencia

    Los clústeres de un solo nodo funcionan bien con fines de desarrollo y evaluación. Use clústeres de varios nodos certificados de Kubernetes en un entorno local o en la nube para cargas de trabajo de producción.

Adición del repositorio de Helm

  1. Agregue API Management de Azure como nuevo repositorio de Helm.

    helm repo add azure-apim-gateway https://azure.github.io/api-management-self-hosted-gateway/helm-charts/
    
  2. Actualice el repositorio para capturar los gráficos de Helm más recientes.

    helm repo update
    
  3. Compruebe la configuración de Helm enumerando todos los gráficos disponibles.

    $ 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 ...
    

Implementación de la puerta de enlace autohospedada en Kubernetes

  1. Seleccione Puertas de enlace en Deployment and infrastructure (Implementación e infraestructura).

  2. Seleccione el recurso de puerta de enlace autohospedada que desea implementar.

  3. Seleccione Implementación.

  4. En el cuadro de texto Token se ha generado automáticamente un nuevo token con los valores predeterminados de Expiración y Clave secreta. Ajuste uno o ambos si lo desea y seleccione Generar para crear un nuevo token.

  5. Anote el token y la dirección URL de configuración.

  6. Instalación de la puerta de enlace autohospedada mediante el gráfico de 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. Ejecute el comando. El comando indica al clúster de Kubernetes que:

    • Descargue la imagen de la puerta de enlace autohospedada desde Microsoft Container Registry y lo ejecute como contenedor.
    • Configure el contenedor para exponer los puertos HTTP (8080) y HTTPS (8081).

    Importante

    De manera predeterminada, la puerta de enlace usa un servicio ClusterIP y solo se expone dentro del clúster. Puede cambiarlo especificando el tipo de servicio de Kubernetes durante la instalación.

    Por ejemplo, puede exponerlo a través de un equilibrador de carga agregando --set service.type=LoadBalancer

  8. Ejecute el siguiente comando para comprobar que el pod de puerta de enlace se está ejecutando. El nombre del pod será diferente.

    kubectl get pods
    NAME                                           READY     STATUS    RESTARTS   AGE
    azure-api-management-gateway-59f5fb94c-s9stz   1/1       Running   0          1m
    
  9. Ejecute el siguiente comando para comprobar que el servicio de puerta de enlace se está ejecutando. El nombre del servicio y las direcciones IP serán diferentes.

    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. Vuelva a Azure Portal y confirme que el nodo de puerta de enlace que ha implementado notifica que su estado es correcto.

Sugerencia

Use el comando kubectl logs <gateway-pod-name> para ver una instantánea del registro de la puerta de enlace autohospedada.

Pasos siguientes