Extensión de Dapr para Azure Kubernetes Service (AKS) y Kubernetes habilitado para Arc
Distributed Apps Runtime (Dapr) ofrece API que le ayudan a escribir e implementar microservicios sencillos, portables, resistentes y protegidos. Las API de Dapr se ejecutan como un proceso sidecar en tándem con sus aplicaciones y eliminan las complejidades comunes que puede encontrar al crear aplicaciones distribuidas, como:
- Detección de servicios
- Integración del agente de mensajes
- Cifrado
- Observabilidad
- Administración de secretos
Dapr se puede adoptar de forma incremental. Puede usar cualquiera de los bloques de creación de la API según sea necesario. Obtenga información sobre el nivel de soporte técnico que ofrece Microsoft para cada API y componente de Dapr.
El uso de la extensión de Dapr para aprovisionar Dapr en el clúster de AKS o Kubernetes habilitado para Arc elimina la sobrecarga de:
- Descarga de herramientas de Dapr
- Instalación y administración manual del entorno de ejecución de Dapr en el clúster de AKS
Además, la extensión ofrece compatibilidad con todas las funcionalidades de configuración nativas de Dapr a través de argumentos de línea de comandos sencillos.
Dapr proporciona el siguiente conjunto de funcionalidades para ayudarle con el desarrollo de microservicios en AKS:
- Aprovisionamiento sencillo de Dapr en AKS a través de extensiones de clúster
- Portabilidad habilitada a través de las API de HTTP y gRPC que abstraen las opciones de tecnologías subyacentes.
- Llamadas de servicio a servicio confiables, seguras y resistentes a través de las API de HTTP y gRPC.
- Publicación y suscripción a la mensajería que facilita la compatibilidad con el filtrado de CloudEvent y la semántica "al menos una vez" para la entrega de mensajes.
- Observabilidad y supervisión conectables a través del recopilador de API de Open Telemetry.
- Independiente del lenguaje, si bien también ofrece kits de desarrollo de software (SDK) específicos de lenguaje
- Integración con Visual Studio Code mediante la extensión Dapr.
- Más API para resolver los desafíos de las aplicaciones distribuidas
La extensión Dapr es la única opción que admite Microsoft para Dapr en AKS.
Microsoft clasifica los problemas que se producen en la extensión Dapr en dos categorías:
- Operaciones de extensión
- Entorno de ejecución de Dapr (incluidas las API y los componentes)
En la tabla siguiente se desglosan los niveles de prioridad de soporte para cada una de estas categorías.
Descripción | Riesgos de seguridad/Regresiones | Problemas funcionales | |
---|---|---|---|
Operaciones de extensión | Problemas detectados durante las operaciones de extensión, como instalar/desinstalar o actualizar la extensión Dapr. | Microsoft prioriza la resolución inmediata. | Microsoft investiga y aborda el problema según sea necesario. |
Entorno de ejecución de Dapr | Problemas detectados al usar el entorno de ejecución, las API y los componentes de Dapr mediante la extensión. | Microsoft trabaja con la comunidad de código abierto para investigar problemas de alta prioridad. En función de la prioridad, la gravedad y el alcance del problema, Microsoft lo resuelve directamente en la extensión o trabaja con el proyecto de código abierto de Dapr para corregir el problema en una revisión o en una versión futura de código abierto de Dapr. Una vez que las correcciones se publiquen en el código abierto de Dapr, estarán disponibles en la extensión Dapr. | Microsoft investiga los nuevos problemas funcionales junto con el proyecto de código abierto de Dapr y colabora con ellos para resolverlos en una revisión o una versión futura de código abierto de Dapr. Actualmente, Microsoft no investiga los problemas funcionales de código abierto conocidos. |
Microsoft proporciona soporte técnico, en la medida de lo posible, para la versión más reciente de Dapr y las dos versiones anteriores (N-2). La versión de revisión más reciente es la única versión admitida de cada versión secundaria. Actualmente, la extensión Dapr para AKS o Kubernetes habilitado para Arc admite las siguientes versiones de Dapr:
- 1.14.x
- 1.13.x
- 1.12.x
Puede ejecutar comandos de la CLI de Azure para recuperar una lista de versiones disponibles en un clúster o en una ubicación.
La compatibilidad con la extensión de Dapr varía en función de cómo administre el entorno de ejecución.
El entorno de ejecución autoadministrado requiere que la actualización manual permanezca en la ventana de soporte técnico. Para actualizar Dapr a través de la extensión, siga las instrucciones de la instancia de actualización de la extensión.
Una vez que una versión del entorno de ejecución de Dapr llegue al final del soporte técnico de Microsoft, las aplicaciones seguirán ejecutándose sin cambios. No obstante, Microsoft ya no proporcionará revisiones de seguridad ni soporte técnico relacionado al cliente para esa versión del entorno de ejecución. Si la aplicación tiene algún problema después de la fecha de finalización del soporte técnico para esa versión, se recomienda actualizar a una versión compatible para recibir las últimas revisiones de seguridad y características.
La habilitación de la actualización automática debe considerarse con atención. Aunque la actualización automática mantiene la extensión Dapr actualizada a la versión secundaria más reciente, puede experimentar cambios importantes entre las actualizaciones. Microsoft no es responsable de ningún tiempo de inactividad debido a cambios importantes entre las actualizaciones automáticas.
Puede usar todos los componentes y API de Dapr mediante la extensión Dapr, incluidos los que se encuentran en estado alfa y beta. Sin embargo, Microsoft solo proporciona soporte para un subconjunto de API y componentes, de acuerdo con las directivas de solución de problemas definidas.
La extensión Dapr admite versiones estables de las API de Dapr (bloques de creación).
API de Dapr | Estado | Descripción |
---|---|---|
Invocación de servicio a servicio | Stable | Descubra los servicios y realice llamadas de servicio a servicio confiables y directas con autenticación y cifrado automáticos de mTLS.(#limitaciones) |
Administración de estados | Stable | Proporciona funcionalidades de administración de estado para transacciones y operaciones CRUD. |
Pub/sub | Stable | Permite que las aplicaciones de publicador y suscriptor se comuniquen entre ellas por medio de un agente de mensajes intermediario. También puede crear suscripciones declarativas a un tema mediante un archivo JSON de componente externo. |
Enlaces | Stable | Desencadenan las aplicaciones en función de los eventos. |
Actores | Stable | Los actores de Dapr son unidades de trabajo orientadas a mensajes, de un solo subproceso y diseñadas para escalar rápidamente. Por ejemplo, en situaciones de carga de trabajo en ráfaga intensivas. |
Observabilidad | Stable | Envíe información de seguimiento a un back-end de Application Insights. |
Secretos | Stable | Acceda a secretos desde el código de la aplicación o haga referencia a valores seguros en los componentes de Dapr. |
Configuración | Stable | Recupere los elementos de configuración de la aplicación y suscríbase a ellos para la configuración admitida. de datos. |
Se admite un subconjunto de componentes de Dapr. Dentro de ese subconjunto, los componentes de Dapr se dividen en dos categorías de soporte técnico: nivel 1 o nivel 2.
- Componentes de nivel 1: componentes estables que reciben investigación inmediata en escenarios críticos (seguridad o regresión grave). De lo contrario, Microsoft colabora con código abierto para abordar el problema en una revisión o en la próxima versión normal.
- Componentes de nivel 2: componentes que se investigan con una prioridad menor, ya que no tienen un estado estable o están con un proveedor externo.
API | Componente | Tipo |
---|---|---|
Administración de estados | Azure Cosmos DB Azure Blob Storage v1 Azure Table Storage Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publicación y suscripción | Azure Service Bus Queues Azure Service Bus Topics Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Enlace | Colas de Azure Storage Azure Service Bus Queues Azure Blob Storage Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Administración de secretos | Azure Key Vault | secretstores.azure.keyvault |
API | Componente | Tipo |
---|---|---|
Administración de estados | PostgreSQL MySQL y MariaDB Redis |
state.postgresql state.mysql state.redis |
Publicación y suscripción | Apache Kafka Secuencias de Redis |
pubsub.kafka pubsub.redis |
Enlace | Azure Event Grid Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Configuración | PostgreSQL Redis |
configuration.postgresql configuration.redis |
La nube global de Azure es compatible con AKS y Arc en las siguientes regiones:
Region | Compatibilidad con AKS | Compatibilidad con Arc para Kubernetes |
---|---|---|
australiaeast |
✔️ | ✔️ |
australiasoutheast |
✔️ | ❌ |
brazilsouth |
✔️ | ❌ |
canadacentral |
✔️ | ✔️ |
canadaeast |
✔️ | ✔️ |
centralindia |
✔️ | ✔️ |
centralus |
✔️ | ✔️ |
eastasia |
✔️ | ✔️ |
eastus |
✔️ | ✔️ |
eastus2 |
✔️ | ✔️ |
eastus2euap |
❌ | ✔️ |
francecentral |
✔️ | ✔️ |
francesouth |
✔️ | ❌ |
germanywestcentral |
✔️ | ✔️ |
japaneast |
✔️ | ✔️ |
japanwest |
✔️ | ❌ |
koreacentral |
✔️ | ✔️ |
koreasouth |
✔️ | ❌ |
northcentralus |
✔️ | ✔️ |
northeurope |
✔️ | ✔️ |
norwayeast |
✔️ | ❌ |
southafricanorth |
✔️ | ❌ |
southcentralus |
✔️ | ✔️ |
southeastasia |
✔️ | ✔️ |
southindia |
✔️ | ❌ |
swedencentral |
✔️ | ✔️ |
switzerlandnorth |
✔️ | ✔️ |
uaenorth |
✔️ | ❌ |
uksouth |
✔️ | ✔️ |
ukwest |
✔️ | ❌ |
westcentralus |
✔️ | ✔️ |
westeurope |
✔️ | ✔️ |
westus |
✔️ | ✔️ |
westus2 |
✔️ | ✔️ |
westus3 |
✔️ | ✔️ |
Aunque Dapr y las mallas de servicio ofrecen algunas funcionalidades superpuestas, una malla de servicio se centra en los problemas de red, mientras que Dapr se centra en proporcionar bloques de creación que facilitan la creación de aplicaciones como microservicios. Dapr está centrado en el desarrollador, mientras que las mallas de servicio están centradas en la infraestructura.
Algunas funcionalidades comunes que Dapr comparte con las mallas de servicio incluyen:
- Protección de la comunicación entre servicios con el cifrado mTLS
- Recopilación de métricas de servicio a servicio
- Seguimiento distribuido de servicio a servicio
- Resistencia a través de reintentos
Dapr proporciona otros bloques de creación de nivel de aplicación para la administración de estados, mensajería de tipo pub/sub, actores, etc. Sin embargo, Dapr no proporciona funcionalidades para el comportamiento del tráfico, como el enrutamiento o la división de este. Si la solución se beneficia del tráfico que se divide en una malla de servicio, considere la posibilidad de usar Open Service Mesh.
Para obtener más información sobre Dapr y las mallas de servicio, y cómo se pueden usar juntas, consulte la documentación de Dapr.
Tanto la API de secretos de Dapr como el controlador CSI del almacén de secretos administrado permiten la integración de secretos contenidos en un almacén externo, abstrayendo así la tecnología de almacén de secretos del código de la aplicación.
El controlador CSI del almacén de secretos monta los secretos que se mantienen en Azure Key Vault como un volumen CSI para el consumo por parte de una aplicación.
Dapr expone secretos por medio de una API de RESTful que se puede:
- Llamar mediante el código de aplicación
- Configurar con almacenes secretos variados
En la tabla siguiente se enumeran las funcionalidades de cada oferta:
API de secretos de Dapr | Controlador CSI del almacén de secretos | |
---|---|---|
Almacenes de secretos admitidos | Variables de entorno local (para desarrollo); Archivo local (para desarrollo); Secretos de Kubernetes; Administrador de secretos de AWS; Secretos de Azure Key Vault; Azure Key Vault con identidades administradas en Kubernetes; Administrador de secretos de GCP; HashiCorp Vault. | Almacén de secretos de Azure Key Vault. |
Acceso a los secretos en el código de aplicación | Llamada a la API de secretos de Dapr. | Acceso al volumen montado o sincronización del contenido montado como un secreto de Kubernetes y establecimiento de una variable de entorno. |
Rotación de secretos | Las nuevas llamadas API obtienen los secretos actualizados. | Sondea los secretos y actualiza el montaje en un intervalo configurable. |
Registro y métricas | El sidecar de Dapr genera registros, que se pueden configurar con recopiladores como Azure Monitor, emite métricas a través de Prometheus y expone un punto de conexión HTTP para las comprobaciones de estado. | Emite métricas de controlador y de proveedor de Azure Key Vault a través de Prometheus. |
Para obtener más información sobre la administración de secretos en Dapr, consulte la introducción a la administración de secretos.
Para obtener más información sobre el controlador CSI del almacén de secretos y el proveedor de Azure Key Vault, consulte la introducción al controlador CSI del almacén de secretos.
¿Cómo se compara la extensión administrada del clúster de Dapr con la oferta de Dapr de código abierto?
La extensión administrada del clúster de Dapr es el método más sencillo para aprovisionar Dapr en un clúster de AKS. Con la extensión, puede descargar la administración de la versión en tiempo de ejecución de Dapr si opta por las actualizaciones automáticas. Además, la extensión instala Dapr con valores predeterminados inteligentes (por ejemplo, para aprovisionar el plano de control de Dapr en modo de alta disponibilidad).
Al instalar código abierto de Dapr mediante Helm o la CLI de Dapr, los desarrolladores y los responsables de mantenimiento de los clústeres también son responsables de las versiones del entorno de ejecución y las opciones de configuración.
Por último, la extensión de Dapr es una extensión de AKS, por lo que puede esperar la misma directiva de compatibilidad que otras características de AKS.
¿Cómo puedo autenticar componentes de Dapr con Microsoft Entra ID mediante identidades administradas?
- Obtenga información sobre cómo se autentican los componentes de Dapr con Microsoft Entra ID.
- Obtenga información sobre el uso de identidades administradas con AKS.
¿Cómo puedo cambiar al uso de la extensión de Dapr si ya he instalado Dapr a través de un método como Helm?
La recomendación es desinstalar por completo Dapr del clúster de AKS y volver a instalarlo a través de la extensión de clúster. También puede comprobar la instalación de Dapr existente y migrarla a AKS.
Si instala Dapr a través de la extensión de AKS, nuestra recomendación es seguir usando la extensión para la administración futura de Dapr en lugar de la CLI de Dapr. La combinación de las dos herramientas puede provocar conflictos y generar un comportamiento no deseado.
Comentarios de Azure Kubernetes Service
Azure Kubernetes Service es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: