Referencia: Configuración de gateway autoalojada en Azure Arc

SE APLICA A: Desarrollador | Premium

Este artículo proporciona una referencia para los ajustes necesarios y opcionales para configurar la extensión Azure Arc para el contenedor de gateway autoalojado de API Management.

Importante

La puerta de enlace autohospedada de API Management en Azure Arc está actualmente en versión preliminar. Durante la versión preliminar, la extensión de puerta de enlace de API Management está disponible en las siguientes regiones:

  • Asia (Este, Sudeste)
  • Australia ( Centro, Centro 2, Este y Sudeste)
  • Brasil (Sur y Sudeste)
  • Canadá (Central, Este)
  • Europa (Norte, Oeste)
  • Francia (Centro y Sur)
  • Alemania (Norte y Centro Oeste)
  • India (Centro, Sur, Oeste, Jio central y Jio Oeste)
  • Japón (Este y Oeste)
  • Corea (Centro y Sur)
  • Noruega (Este y Oeste)
  • Sudáfrica (Norte y Oeste)
  • Suecia (Centro)
  • Suiza (Norte y Oeste)
  • Emiratos Árabes Unidos (EAU - Centro y Norte)
  • Reino Unido (RU-Sur)
  • Estados Unidos (EE. UU. - Centro, Centro de EUAP, Este, Este 2, Este de EUAP 2, Centro-norte, Centro-sur, Centro-oeste, Oeste, Oeste 2, Oeste 3)

Integración de API de configuración

La pasarela autoalojada utiliza la API de Configuración para conectarse a Azure API Management y así obtener la configuración más reciente y enviar métricas, cuando está habilitada.

Aquí tienes un resumen de todas las opciones de configuración:

Nombre Descripción Obligatorio Predeterminado
gateway.configuration.uri Endpoint de configuración en Azure API Management para la pasarela autoalojada. Encuentra este valor en el portal de Azure bajoDespliegue>de Gateways. Yes N/A
gateway.auth.token Clave de autenticación para autenticar con el servicio Azure API Management. Normalmente empieza por GatewayKey. Yes N/A
gateway.configuration.backup.enabled Si está activado, almacena una copia de seguridad de la última configuración descargada en un volumen de almacenamiento. No false
gateway.configuration.backup.persistentVolumeClaim.accessMode Modo de acceso para el pod de Reclamación de Volumen Persistente (PVC). No ReadWriteMany
gateway.configuration.backup.persistentVolumeClaim.size Tamaño de la Reivindicación de Volumen Persistente (PVC) a crear. No 50Mi
gateway.configuration.backup.persistentVolumeClaim.storageClassName Nombre de la clase de almacenamiento para usar en la Afirmación de Volumen Persistente (PVC). Cuando no asignas un valor (null), la plataforma usa el valor por defecto. La clase de almacenamiento especificada debe soportar ReadWriteMany el modo de acceso. Infórmate más sobre los proveedores de volúmenes soportados y sus modos de acceso compatibles. No null

Descubrimiento y sincronización entre instancias

Nombre Descripción Obligatorio Predeterminado
service.instance.heartbeat.port Puerto UDP que las instancias de un despliegue de gateway autoalojado usan para enviar latidos de corazón a otras instancias. No 4291
service.instance.synchronization.port El puerto UDP que las instancias de gateway autoalojadas utilizan para sincronizar la limitación de velocidad entre múltiples instancias. No 4290

Metrics

Nombre Descripción Obligatorio Predeterminado
telemetry.metrics.cloud Indica si habilitar las métricas de emisión en Azure Monitor. No true
telemetry.metrics.local Habilitar la recogida de métricas locales a través de StatsD. El valor es una de las siguientes opciones: none, statsd. No N/A
telemetry.metrics.localStatsd.endpoint Punto final de StatsD. Sí, si telemetry.metrics.local está configurado en statsd; de lo contrario, no. N/A
telemetry.metrics.localStatsd.sampling Métricas de StatsD y tasa de muestreo. El valor debe estar entre 0 y 1, por ejemplo, 0,5. No N/A
telemetry.metrics.localStatsd.tagFormat Formato de etiquetado del exportador de StatsD. El valor es una de las siguientes opciones: librato, dogStatsD, influxDB. No N/A
telemetry.metrics.opentelemetry.enabled Indica si habilitar métricas de emisión a un colector de OpenTelemetry en Kubernetes. No false
telemetry.metrics.opentelemetry.collector.uri URI del colector OpenTelemetry para enviar métricas. Sí, si observability.opentelemetry.enabled está configurado en true; de lo contrario, no. N/A

Logs

Nombre Descripción Obligatorio Predeterminado
telemetry.logs.std Activa el registro en un flujo estándar. El valor es una de las siguientes opciones: none, text, json. No text
telemetry.logs.local Activa el registro local. El valor es una de las siguientes opciones: none, auto, localsyslog, rfc5424journal, ,json No auto
telemetry.logs.localConfig.localsyslog.endpoint Endpoint para syslogs locales Sí, si telemetry.logs.local está configurado como localsyslog; de lo contrario, no. N/A
telemetry.logs.localConfig.localsyslog.facility Especifica el código de instalación local de syslog, por ejemplo, 7. No N/A
telemetry.logs.localConfig.rfc5424.endpoint RFC5424 endpoint. Sí, si telemetry.logs.local está configurado como rfc5424; de lo contrario, no. N/A
telemetry.logs.localConfig.rfc5424.facility Código de instalación según el rfc5424, por ejemplo, 7 No N/A
telemetry.logs.localConfig.journal.endpoint Punto final del diario. Sí, si telemetry.logs.local está configurado como journal; de lo contrario, no. N/A

Enrutamiento del tráfico

Nombre Descripción Obligatorio Predeterminado
service.type Tipo de servicio Kubernetes para usar para exponer la puerta de enlace. (Tipos de servicio Kubernetes) No ClusterIP
service.http.port Puerto para exponer tráfico HTTP. No 8080
service.http.nodePort Un puerto en el nodo para usar y exponer tráfico HTTP. Esta configuración requiere NodePort como tipo de servicio. No N/A
service.https.port Puerto para usar y exponer tráfico HTTPS. No 8081
service.https.nodePort Portar el nodo para exponer tráfico HTTPS. Esta configuración requiere NodePort como tipo de servicio. No N/A
service.annotations Anotaciones para añadir al servicio Kubernetes para la puerta de enlace. No N/A
ingress.annotations Anotaciones para añadir al acceso Kubernetes para la puerta de enlace. (soporte experimental de Kubernetes Ingress) No N/A
ingress.enabled Indica si usar o no Kubernetes Ingress. (soporte experimental de Kubernetes Ingress) No false
ingress.tls Configuración TLS para Kubernetes Ingress. (soporte experimental de Kubernetes Ingress) No N/A
ingress.hosts Configuración de hosts para usar en Kubernetes Ingress. (soporte experimental de Kubernetes Ingress) No N/A

Integrations

La pasarela autoalojada se integra con diversas otras tecnologías. Esta sección ofrece una visión general de las opciones de configuración que puedes utilizar.

Dapr

Nombre Descripción Obligatorio Predeterminado
dapr.enabled Indica si usar integración con Dapr. No false
dapr.app.id ID de aplicación para usar en la integración de Dapr. No None
dapr.config Define qué configuración CRD debe usar Dapr. No tracing
dapr.logging.level Nivel de verbosidad del registro del sidecar Dapr. No info
dapr.logging.useJsonOutput Indica si el registro está en formato JSON. No true

Azure Monitor

Nombre Descripción Obligatorio Predeterminado
monitoring.customResourceId ID de recurso del espacio de trabajo de Azure Log Analytics para enviar los registros. No N/A
monitoring.ingestionKey Clave de ingestión para autenticarse con el espacio de trabajo de Azure Log Analytics para enviar los registros. No N/A
monitoring.workspaceId ID de espacio de trabajo del espacio de trabajo de Azure Log Analytics para enviar los registros. No N/A

Planificación de imágenes y cargas de trabajo

Kubernetes es una potente plataforma de orquestación que ofrece mucha flexibilidad sobre qué desplegarse y cómo programarse.

Esta sección ofrece una visión general de las opciones de configuración disponibles que puedes usar para influir en la imagen que se utiliza, cómo se programa y configura para que se auto-cure.

Nombre Descripción Obligatorio Predeterminado
replicaCount Número de instancias de la puerta de enlace autoalojada para ejecutarse. No 3
image.repository Imagen para ejecutar. No mcr.microsoft.com/azure-api-management/gateway
image.pullPolicy Una política para extraer imágenes de contenedores. No IfNotPresent
image.tag Etiqueta de imagen del contenedor para usar. No Se utiliza la versión de la extensión de la app
imagePullSecrets El secreto de Kubernetes para usar para autenticar con el registro del contenedor al extraer la imagen del contenedor. No N/A
probes.readiness.httpGet.path Ruta URI para usar en sondas de preparación del contenedor No /status-0123456789abcdef
probes.readiness.httpGet.port Puerto para usar en sondas de vivacidade del contenedor No http
probes.liveness.httpGet.path Ruta URI para usar en sondas de vivacidad del contenedor No /status-0123456789abcdef
probes.liveness.httpGet.port Puerto para usar en sondas de vivacidade del contenedor No http
highAvailability.enabled Indicar si la pasarela debe estar programada o no en alta disponibilidad en el clúster. No false
highAvailability.disruption.maximumUnavailable Cantidad de cápsulas que pueden estar inaccesibles debido a interrupciones voluntarias. No 25%
highAvailability.podTopologySpread.whenUnsatisfiable Indicar cómo deberían distribuirse los pods entre los nodos en caso de que no se cumpla el requisito. Más información en la documentación de Kubernetes No ScheduleAnyway
resources Capacidad para definir recursos de CPU/memoria para asignar a la pasarela No N/A
nodeSelector Capacidad para usar selectores para identificar el nodo en el que debe operar la pasarela. No N/A
affinity Affinity for pod scheduling (Kubernetes node affinity) No N/A
tolerations Tolerancias para la planificación de pods (contaminaciones y tolerancias de Kubernetes) No N/A