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 tutorial, usará este ejemplo para conectarse con una instancia de Azure Cache for Redis o Azure Managed Redis.
Prerrequisitos
- Una suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita.
- Un clúster de Azure Kubernetes Service: para obtener más información sobre cómo crear un clúster, consulte Inicio rápido: Implementación de un clúster de Azure Kubernetes Service (AKS) mediante Azure Portal.
- Una identidad administrada asignada por el usuario que desea usar para conectarse a la instancia de Azure Cache for Redis.
Importante
En este tutorial se supone que está familiarizado con conceptos básicos de Kubernetes, como contenedores, pods y servicio.
Configuración de una instancia de Azure Cache Redis
Cree una nueva instancia de Azure Cache for Redis mediante Azure Portal o la herramienta de la CLI preferida. Use la guía de inicio rápido para empezar. De forma alternativa, también puede crear una instancia de Azure Managed Redis.
En este tutorial, use una caché estándar de C1.
Complete los pasos para crear la memoria caché.
Una vez creada la instancia de Redis Cache, vaya a la pestaña de Autenticación. Seleccione la identidad administrada asignada al usuario que desea utilizar para conectarse a su instancia de Redis Cache y, luego, seleccione Guardar.
Como alternativa, puede ir a Configuración de acceso a datos en el menú Recurso para crear un nuevo usuario de Redis con la identidad administrada asignada por el usuario para conectarse a la memoria caché.
Tome nota del nombre de usuario del usuario de Redis desde el portal. Use este nombre de usuario con la carga de trabajo de AKS.
Ejecución local de la muestra
Para ejecutar este ejemplo localmente, configure la entidad de seguridad de usuario como usuario de Redis en la instancia de Redis. El ejemplo de código usa la entidad de seguridad de usuario a través de DefaultAzureCredential para conectarse a la instancia de Redis.
Para eliminar el clúster de AKS
Siga estos pasos para configurar una identidad de carga de trabajo para el clúster de AKS.
Después, complete los siguientes pasos:
- Habilitación del emisor de OIDC y la identidad de carga de trabajo
- Omita el paso para crear una identidad administrada asignada por el usuario si ya ha creado la identidad administrada. Si crea una nueva identidad administrada, asegúrese de crear un nuevo usuario de Redis para la identidad administrada y asignar los permisos de acceso a datos adecuados.
- Creación de una cuenta de Kubernetes Service anotada con el identificador de cliente de la identidad administrada asignada por el usuario
- Cree una credencial de identidad federada para su clúster AKS.
Configuración de la carga de trabajo que se conecta a Azure Cache for Redis
A continuación, configure la carga de trabajo de AKS para conectarse a Azure Cache for Redis después de configurar el clúster de AKS.
Descargue el código de la aplicación de ejemplo.
Construye y empuja la imagen docker a tu Azure Container Registry usando el comando az acr build.
az acr build --image sample/connect-from-aks-sample:1.0 --registry yourcontainerregistry --file Dockerfile .Adjunte su registro de contenedores a su clúster AKS utilizando el siguiente comando:
az aks update --name clustername --resource-group mygroup --attach-acr youracrname
Evaluación de la carga de trabajo
En esta sección, primero instalará la CLI de Kubernetes y, después, se conectará a un clúster de AKS.
Instalación de la CLI de Kubernetes
Use la CLI de Kubernetes, kubectl, para conectarse al clúster de Kubernetes desde el equipo local. Si se ejecuta localmente, puede usar el siguiente comando para instalar kubectl.
az aks install-cli
Si usa Azure Cloud Shell, kubectl ya está instalado y puede omitir este paso.
Conectarse al clúster AKS
Use el portal para copiar el grupo de recursos y el nombre del clúster para su clúster AKS. Para configurar kubectl a fin de que se conecte al clúster de AKS, use el siguiente comando con el grupo de recursos y el nombre de clúster:
az aks get-credentials --resource-group myResourceGroup --name myClusterNamePara comprobar que puede conectarse al clúster, ejecute el siguiente comando:
kubectl get nodesDebería ver una salida similar en la que se muestra la lista de los nodos del clúster.
NAME STATUS ROLES AGE VERSION aks-agentpool-21274953-vmss000001 Ready agent 1d v1.29.7 aks-agentpool-21274953-vmss000003 Ready agent 1d v1.29.7 aks-agentpool-21274953-vmss000006 Ready agent 1d v1.29.7
Ejecute la carga de trabajo en la prueba
El siguiente código describe el archivo de especificación de pods que se utiliza para ejecutar nuestra carga de trabajo. Tenga en cuenta que el pod tiene la etiqueta azure.workloadidentity/use: «true» y está anotado con serviceAccountName como requiere la identidad de carga de trabajo AKS. Si utiliza la autenticación mediante clave de acceso, sustituya el valor de las variables de entorno AUTHENTICATION_TYPE, REDIS_HOSTNAME, REDIS_ACCESSKEY y REDIS_PORT. Para la instancia Azure Managed Redis, establezca el valor de REDIS_PORT en 10 000.
apiVersion: v1 kind: Pod metadata: name: entrademo-pod labels: azure.workload.identity/use: "true" # Required. Only pods with this label can use workload identity. spec: serviceAccountName: workload-identity-sa containers: - name: entrademo-container image: youracr.azurecr.io/connect-from-aks-sample:1.0 imagePullPolicy: Always command: ["dotnet", "ConnectFromAKS.dll"] resources: limits: memory: "256Mi" cpu: "500m" requests: memory: "128Mi" cpu: "250m" env: - name: AUTHENTICATION_TYPE value: "MANAGED_IDENTITY" # change to ACCESS_KEY to authenticate using access key - name: REDIS_HOSTNAME value: "your redis hostname" - name: REDIS_ACCESSKEY value: "your access key" - name: REDIS_PORT value: "6380" # change to 10000 for Azure Managed Redis restartPolicy: NeverGuarde este archivo como podspec.yaml y, a continuación, aplíquelo al clúster de AKS mediante la ejecución del comando folloWing:
kubectl apply -f podspec.yamlObtiene una respuesta que indica que se creó el pod:
pod/entrademo-pod createdPara probar la aplicación, ejecute el siguiente comando para comprobar si el pod se está ejecutando:
kubectl get podsVerá que el pod se ejecuta correctamente como:
NAME READY STATUS RESTARTS AGE entrademo-pod 0/1 Completed 0 42sDado que este tutorial es una aplicación de consola, debe comprobar los registros del pod para comprobar que se ejecutó según lo previsto mediante este comando.
kubectl logs entrademo-appVerá los registros siguientes que indican que el pod se ha conectado correctamente a la instancia de Redis mediante la identidad administrada asignada por el usuario
Connecting with managed identity.. Retrieved value from Redis: Hello, Redis! Success! Previous value: Hello, Redis!
Limpiar el clúster local
Para limpiar el clúster, ejecute el comando siguiente:
kubectl delete pod entrademo-pod
Limpieza de recursos
Si desea seguir usando los recursos que creó en este artículo, mantenga el grupo de recursos.
De lo contrario, si ya ha terminado con los recursos, puede eliminar el grupo de recursos de Azure que ha creado para evitar cargos.
Importante
La eliminación de un grupo de recursos es irreversible. Cuando elimine un grupo de recursos, todos los recursos contenidos en él se eliminan permanentemente. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados. Si ha creado los recursos en un grupo de recursos existente que contiene recursos que desea conservar, puede eliminar cada recurso individualmente en lugar de eliminar el grupo de recursos.
Para eliminar un grupo de recursos
Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
Seleccione el grupo de recursos que desea eliminar.
Si hay muchos grupos de recursos, use el cuadro Filtro para cualquier campo... y escriba el nombre del grupo de recursos que creó para este artículo. Seleccione el grupo de recursos en la lista de resultados.
Seleccione Eliminar grupo de recursos.
Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y, después, seleccione Eliminar.
Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.