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, aprenderá a usar Service Connector para conectar una cuenta de Azure Storage a un pod de un clúster de Azure Kubernetes Service (AKS) mediante la identidad de carga de trabajo. Debe realizar las siguientes tareas:
- Cree un clúster de AKS y una cuenta de Azure Storage.
- Cree una conexión entre el clúster de AKS y la cuenta de Azure Storage mediante Service Connector.
- Clone una aplicación de ejemplo que se conecte a la cuenta de Azure Storage desde el clúster de AKS.
- Implemente la aplicación en un pod en el clúster de AKS y pruebe la conexión.
- Limpieza de recursos.
Requisitos previos
- Conocimientos básicos de contenedores, identidad de carga de trabajo y AKS. Para obtener más información, consulte Tutorial: Preparar una aplicación para Azure Kubernetes Service (AKS).
- Una suscripción de Azure en la que tiene permisos de escritura de recursos de Azure, en una región de Azure que admite Service Connector y tiene suficiente soporte de AKS y cuota de proceso para ejecutar el tutorial. Cree una cuenta gratuita.
- Los
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryyMicrosoft.ManagedIdentityproveedores de recursos registrados en la suscripción de Azure. Puede ejecutaraz provider register -n Microsoft.[service]para registrar los proveedores. - Git para acceder y clonar el repositorio de ejemplo.
-
Docker y kubectl instalados para administrar la imagen de contenedor y los recursos de Kubernetes. Instale
kubectlmediante la ejecución deaz aks install-clilocalmente. - CLI de Azure instalado.
Creación de recursos de Azure
Inicie sesión en Azure ejecutando az login y siga las indicaciones.
Cree un grupo de recursos de Azure para este tutorial, reemplazando el marcador de posición
<region>con un valor válido. Ellocationdebe ser una región de Azure en la que la suscripción tenga suficiente cuota de proceso para los recursos de Azure y sin restricciones en ninguno de los servicios.az group create \ --name MyResourceGroup \ --location <region>Cree un clúster de AKS para que contenga la conexión de servicio, la definición de pod y la aplicación de ejemplo mediante la ejecución del comando siguiente. Para obtener más información, consulte Quickstart: Implementación de un clúster de Azure Kubernetes Service (AKS) mediante CLI de Azure.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Para conectarse al clúster, ejecute el comando siguiente.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCree una cuenta de Azure Storage para que sea el servicio de destino al que se conecta el clúster de AKS y con la que interactúa la aplicación de ejemplo. Para más información, consulte Creación de una cuenta de Azure Storage. Ejecute el comando siguiente, reemplazando
<storageaccountname>por un nombre de 3-24 caracteres en minúsculas o numéricos y que sea único en Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSCree un registro de contenedor de Azure para hospedar la imagen de contenedor de la aplicación consumida por la definición de pod de AKS. Para obtener más información, consulte Quickstart: Creación de un registro de contenedor de Azure mediante el portal de Azure. Ejecute el comando siguiente, reemplazando
<registryname>por un nombre de 5-50 caracteres en minúsculas o numéricos y que sea único en Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardHabilite la extracción anónima para que el clúster de AKS pueda consumir las imágenes del Registro. Reemplace el marcador de posición
<registryname>con su nombre de registro.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledEjecute el comando siguiente para crear una identidad administrada asignada por el usuario que la creación de la conexión de servicio pueda usar para habilitar la identidad de carga de trabajo para las cargas de trabajo de AKS. Para obtener más información, consulte Administrar identidades administradas asignadas por el usuario mediante el portal de Azure.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Creación de una conexión de servicio mediante Service Connector
Cree una conexión de servicio entre el clúster de AKS y la cuenta de Azure Storage mediante CLI de Azure o el portal de Azure.
Ejecute el siguiente comando CLI de Azure para crear una conexión de servicio a la cuenta de almacenamiento Azure. Reemplace por <storageaccountname> el nombre de la cuenta de almacenamiento y <user-identity-resource-id> por el identificador de recurso de identidad administrada asignada por el usuario.
Puede obtener el identificador de recurso de identidad administrada asignada por el usuario en la salida del comando anterior az identity create o usar el formato /subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyIdentity.
az aks connection create storage-blob \
--resource-group MyResourceGroup \
--name MyAKSCluster \
--target-resource-group MyResourceGroup \
--account <storageaccountname> \
--workload-identity <user-identity-resource-id>
Una vez creada la conexión, la página Azure portal Service Connector muestra información sobre la nueva conexión. Puede usar esta información al editar el archivo pod.yaml más adelante en este tutorial.
Creación de la aplicación de ejemplo
Clone el repositorio de ejemplo y cambie al directorio que contiene la aplicación de ejemplo. Ejecute los comandos restantes desde esta carpeta.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityCompile e inserte las imágenes en el registro de contenedor mediante el
az acr buildcomando . Reemplace el marcador de posición<registryname>con el nombre de su registro.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Vea la imagen en el registro de contenedores mediante el comando
az acr repository list. Reemplace el marcador de posición<registryname>con su nombre de registro.az acr repository list --name <registryname> --output table
Ejecución de la aplicación y prueba de la conexión
Reemplace los siguientes marcadores de posición en el archivo pod.yaml en la carpeta de la aplicación local:
-
<YourContainerImage>: reemplace por el nombre de la imagen en el registro de contenedor, por ejemplo<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: Reemplace con la cuenta de servicio "Service Connector" creada tras establecer la conexión. Puede comprobar el nombre de la cuenta de servicio en la página del conector del servicio de clúster de AKS en el portal de Azure. -
<SecretCreatedByServiceConnector>: reemplace por el conector de servicio secreto creado después de la creación de la conexión. Puede comprobar el nombre de la cuenta de servicio en la página del conector del servicio de clúster de AKS en el portal de Azure.
-
Implemente el pod en el clúster mediante
kubectl apply. El comando crea un pod denominadosc-demo-storage-identityen el espacio de nombres predeterminado del clúster de AKS.kubectl apply -f pod.yamlCompruebe que el despliegue sea exitoso visualizando el pod usando
kubectl.kubectl get pod/sc-demo-storage-identityCompruebe que la conexión se establece mediante la visualización de los registros mediante
kubectl.kubectl logs pod/sc-demo-storage-identity
Limpieza de recursos
Si ya no necesita los recursos de Azure creados para este tutorial, puede eliminarlos eliminando el grupo de recursos MyResourceGroup.
az group delete \
--resource-group MyResourceGroup