Compartir a través de


Inicio rápido: Implementa una aplicación mediante la extensión Dapr para Azure Kubernetes Service (AKS) o Kubernetes con compatibilidad con Arc

En esta guía de inicio rápido, utilizará la extensión Dapr en un clúster de Kubernetes habilitado para AKS o Arc. Se implementa un ejemplo de hello world, que consta de una aplicación de Python que genera mensajes y una aplicación Node.js que consume y conserva los mensajes.

Requisitos previos

Clonación del repositorio

  1. Clone el repositorio de inicio rápido de Dapr mediante el git clone comando .

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Cambie al directorio dapr-aks-extension-quickstart.

    cd dapr-aks-extension-quickstart
    

Creación y configuración de un almacén de Redis

Abra Azure Portal para iniciar el flujo de creación de Azure Cache for Redis.

  1. Rellene la información recomendada según la guía de inicio rápido Creación de una instancia de Azure Cache for Redis.

  2. Seleccione Crear para iniciar la implementación de la instancia de Redis.

Comprobación de la información del recurso

  1. Una vez implementado el recurso de Redis, vaya a su página de información general.

  2. Tome nota de:

    • El nombre de host, que se encuentra en la sección Essentials de la página de información general de la memoria caché. El formato de nombre de host es similar a: xxxxxx.redis.cache.windows.net.
    • El puerto SSL, que se encuentra en Configuración>Avanzada. El valor predeterminado es 6380.
  3. Vaya a Configuración> Autenticación y compruebe que laautenticación de Microsoft Entra está habilitada en el recurso.

Agregar identidad administrada

  1. En la sección Autenticación , en la casilla Habilitar autenticación de Microsoft Entra , escriba el nombre de la identidad administrada que creó como requisito previo.

    Captura de pantalla que muestra el campo donde puede seleccionar una identidad administrada para agregar como usuario de Redis.

  2. Compruebe que la identidad administrada se agrega como permisos de directiva de acceso de propietario de datos asignados por el usuario de Redis.

Habilitación del acceso a la red pública

En este escenario, Redis Cache usa el acceso a la red pública. Asegúrese de limpiar los recursos después de finalizar con este inicio rápido.

  1. Vaya a Configuración>Punto de conexión privado.

  2. Seleccione Habilitar acceso a la red pública en el menú.

Configuración de los componentes de Dapr

En el archivo redis.yaml, el componente está configurado para utilizar la autenticación de Entra ID con la identidad de carga de trabajo habilitada para el clúster de AKS. No se requieren claves de acceso.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. En el editor de código preferido, vaya al directorio deploy del repositorio de ejemplo y abra redis.yaml.

  2. Para redisHost, reemplace el valor del marcador de posición <REDIS_HOST>:<REDIS_PORT> por el nombre de host de Redis Cache y el puerto SSL que guardó anteriormente desde el Azure Portal.

    - name: redisHost
      value: <your-cache-name>.redis.cache.windows.net:6380
    

Aplicación de la configuración

Aplique el archivo redis.yaml mediante el kubectl apply comando .

kubectl apply -f ./deploy/redis.yaml

Salida prevista

component.dapr.io/statestore created

Implementación de la aplicación de Node.js con el sidecar de Dapr

Configuración de la aplicación Node.js

En node.yaml, la especificación del pod incluye la etiqueta para utilizar la identidad de la carga de trabajo:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Vaya al deploy directorio y abra node.yaml.

  2. Reemplace el valor del marcador de posición <SERVICE_ACCOUNT_NAME> por el nombre de la cuenta de servicio que creó.

    • Este valor debe ser la misma cuenta de servicio que usó para crear la credencial de identidad federada.

Aplicación de la configuración

  1. Aplique la implementación de la aplicación de Node.js al clúster mediante el comando kubectl apply.

    kubectl apply -f ./deploy/node.yaml
    
  2. Las implementaciones de Kubernetes son asincrónicas, así que antes de continuar con el paso siguiente, compruebe que se ha completado la implementación con el siguiente comando:

    kubectl rollout status deploy/nodeapp
    
  3. Acceda al servicio mediante el comando kubectl get svc.

    kubectl get svc nodeapp
    
  4. Anote el EXTERNAL-IP en la salida.

Compruebe el servicio de Node.js

  1. Use curl para llamar al servicio con su EXTERNAL-IP.

    curl <EXTERNAL-IP>/ports
    

    Salida de ejemplo

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Envíe una orden a la aplicación.

    curl --request POST --data "@sample.json" --header Content-Type:application/json <EXTERNAL-IP>/neworder
    
  3. Confirme la orden.

    curl <EXTERNAL-IP>/order
    

    Salida prevista

    { "orderId": "42" }
    

Implementación de la aplicación de Python con el sidecar de Dapr

Configuración de la aplicación de Python

En python.yaml, la especificación de pod tiene la etiqueta añadida para usar la identidad de carga de trabajo:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. Vaya al deploy directorio y abra python.yaml.

  2. Reemplace el valor del marcador de posición <SERVICE_ACCOUNT_NAME> por el nombre de la cuenta de servicio que creó.

    • Este valor debe ser la misma cuenta de servicio que usó para crear la credencial de identidad federada.

Aplicación de la configuración

  1. Implemente la aplicación de Python en el clúster de Kubernetes usando el comando kubectl apply.

    kubectl apply -f ./deploy/python.yaml
    
  2. Las implementaciones de Kubernetes son asincrónicas, así que antes de continuar con el paso siguiente, compruebe que se ha completado la implementación con el siguiente comando:

    kubectl rollout status deploy/pythonapp
    

Observación de mensajes y confirmación de persistencia

Ahora que se han implementado las aplicaciones de Node.js y Python, puede ver cómo llegan los mensajes.

  1. Obtenga los registros de la aplicación de Node.js mediante el comando kubectl logs.

    kubectl logs --selector=app=node -c node --tail=-1
    

    Salida prevista

    Got a new order! Order ID: 1
    Successfully persisted state
    Got a new order! Order ID: 2
    Successfully persisted state
    Got a new order! Order ID: 3
    Successfully persisted state
    
  2. Usando curl, llame al punto de conexión de la orden de la aplicación de Node.js para obtener la orden más reciente.

    curl <EXTERNAL-IP>/order
    

    Debería ver la salida de JSON más reciente en la respuesta.

Limpieza de recursos

Si ya no tiene previsto usar los recursos de este inicio rápido, puede quitar el grupo de recursos, el clúster, el espacio de nombres y todos los recursos relacionados mediante el comando az group delete .

az group delete --name <your-resource-group>

Paso siguiente