Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, usa la extensión de clúster de Dapr en un clúster de AKS o de Kubernetes habilitado para 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
- Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
- CLI de Azure o Azure PowerShell instalados.
- Un clúster de AKS con:
- Identidad de carga de trabajo habilitada
- Identidad administrada creada en la misma suscripción
- Una cuenta de servicio de Kubernetes
- Credencial de identidad federada
- Extensión de clúster de Dapr instalada en el clúster de AKS
- kubectl instalado de forma local.
Clonación del repositorio
Clone el repositorio de inicios rápidos de Dapr mediante el comando
git clone.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitCambie al directorio
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.
- Rellene la información recomendada según las instrucciones de inicio rápido de "Creación de una Redis Cache de código abierto".
- Seleccione Crear para iniciar la implementación de la instancia de Redis.
Comprobación de la información del recurso
- Una vez implementado el recurso de Redis, vaya a su página de información general.
- Anote el valor 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 la hoja Configuración avanzada de la memoria caché. El valor predeterminado es
6380.
- 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:
- Vaya a la hoja Autenticación y compruebe que la autenticación de Microsoft Entra está habilitada en el recurso.
Agregar identidad administrada
En la hoja Autenticación, escriba el nombre de la identidad administrada que creó como requisito previo en el campo bajo la casilla Habilitar autenticación de Microsoft Entra.
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 cuando haya terminado con este inicio rápido.
- Vaya a la hoja Punto de conexión privado.
- Haga clic en Habilitar el acceso a la red pública en el menú superior.
Configuración de los componentes de Dapr
En redis.yaml, el componente está configurado para usar la autenticación de Entra ID mediante 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
En su editor de código preferido, vaya al directorio
deploydel ejemplo y abraredis.yaml.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 de Azure Portal.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Aplicación de la configuración
Aplique el archivo
redis.yamlmediante el comandokubectl apply.kubectl apply -f ./deploy/redis.yamlCompruebe que el almacén de estado se configuró correctamente mediante el comando
kubectl get components.redis.kubectl get components.redis -o yamlSalida 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 de pod tiene la etiqueta agregada para usar la identidad de carga de trabajo:
labels:
app: node
azure.workload.identity/use: "true"
Vaya al directorio
deployy abranode.yaml.Reemplace el valor de
<SERVICE_ACCOUNT_NAME>del marcador de posición deserviceAccountNamepor 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
Aplique la implementación de la aplicación de Node.js al clúster mediante el comando
kubectl apply.kubectl apply -f ./deploy/node.yamlLas 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/nodeappAcceda al servicio mediante el comando
kubectl get svc.kubectl get svc nodeappAnote el
EXTERNAL-IPen la salida.
Compruebe el servicio de Node.js
Use
curlpara llamar al servicio con suEXTERNAL-IP.curl $EXTERNAL_IP/portsSalida de ejemplo
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}Envíe una orden a la aplicación.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderConfirme la orden.
curl $EXTERNAL_IP/orderSalida 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 agregada para usar la identidad de carga de trabajo:
labels:
app: node
azure.workload.identity/use: "true"
Vaya al directorio
deployy abrapython.yaml.Reemplace el valor de
<SERVICE_ACCOUNT_NAME>del marcador de posición deserviceAccountNamepor 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
Implemente la aplicación de Python en el clúster de Kubernetes usando el comando
kubectl apply.kubectl apply -f ./deploy/python.yamlLas 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.
Obtenga los registros de la aplicación de Node.js mediante el comando
kubectl logs.kubectl logs --selector=app=node -c node --tail=-1Salida 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 stateUsando
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/orderDeberí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 eliminar todos los recursos asociados quitando el grupo de recursos.
Quite 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 MyResourceGroup