Tutorial: conexión a la cuenta de almacenamiento de Azure en Azure Kubernetes Service (AKS) con Service Connector mediante la identidad de carga de trabajo
Aprenda a crear un pod en un clúster de AKS, que se comunica con una cuenta de almacenamiento de Azure mediante la identidad de carga de trabajo con la ayuda de Service Connector. En este tutorial, va a completar las siguientes tareas:
- Cree un clúster de AKS y una cuenta de almacenamiento de Azure.
- Cree una conexión entre el clúster de AKS y la cuenta de almacenamiento de Azure con Service Connector.
- Clone una aplicación de ejemplo que hablará con la cuenta de almacenamiento de Azure desde un 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.
Importante
Service Connect en AKS se encuentra actualmente en versión preliminar. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Instale la CLI de Azure e inicie sesión en esta mediante el comando az login.
- Instale Docker y kubectl para administrar la imagen de contenedor y los recursos de Kubernetes.
- Conocimientos básicos sobre el contenedor y AKS. Empiece por preparar una aplicación para AKS.
- Conocimientos básicos de la identidad de la carga de trabajo.
Creación de recursos de Azure
Cree un grupo de recursos para este tutorial.
az group create \ --name MyResourceGroup \ --location eastus
Cree un clúster de AKS con el comando siguiente o haga referencia al tutorial. Creamos la conexión de servicio y la definición de pod e implementamos la aplicación de ejemplo en este clúster.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
Conéctese al clúster con el comando siguiente.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Cree una cuenta de almacenamiento de Azure con el comando siguiente o consulte el tutorial. Es el servicio de destino que está conectado al clúster de AKS y con el que interactúa la aplicación de ejemplo.
az storage account create \ --resource-group MyResourceGroup \ --name MyStorageAccount \ --location eastus \ --sku Standard_LRS
Cree un registro de contenedor de Azure con el comando siguiente o consulte el tutorial. El registro hospeda la imagen de contenedor de la aplicación de ejemplo, que consumirá la definición del pod de AKS.
az acr create \ --resource-group MyResourceGroup \ --name MyRegistry \ --sku Standard
Y habilite la extracción anónima para que el clúster de AKS pueda consumir las imágenes en el registro.
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
Cree una identidad administrada asignada por el usuario con el comando siguiente o consulte el tutorial. La identidad administrada asignada por el usuario se usa en la creación de conexiones de servicio para habilitar la identidad de carga de trabajo para las cargas de trabajo de AKS.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Creación de una conexión de servicio con Service Connector (versión preliminar)
Cree una conexión de servicio entre un clúster de AKS y una cuenta de almacenamiento de Azure mediante Azure Portal o la CLI de Azure.
Abra el servicio Kubernetes en Azure Portal y seleccioneConector de servicio en el menú de la izquierda.
Seleccione Crear y rellene la configuración como se muestra a continuación. Deje las otras opciones de configuración con sus valores predeterminados.
Pestaña Aspectos básicos:
Configuración Opción Descripción Espacio de nombres de Kubernetes default Espacio de nombres donde necesita la conexión en el clúster. Tipo de servicio. Storage - Blob El tipo de servicio de destino. Nombre de la conexión storage_conn Use el nombre de conexión proporcionado por Service Connector o elija su propio nombre de conexión. Suscripción <MySubscription>
La suscripción del servicio de destino de Azure Blob Storage. Cuenta de almacenamiento <MyStorageAccount>
La cuenta de almacenamiento de destino a la que desea conectarse. Tipo de cliente Python Marco o lenguaje de código que se usa para conectarse al servicio de destino. Pestaña Autenticación:
Configuración de autenticación Opción Descripción Tipo de autenticación Identidad de carga de trabajo Tipo de autenticación de Service Connector. Identidad administrada asignada por el usuario <MyIdentity>
Se necesita una identidad administrada asignada por el usuario para habilitar la identidad de carga de trabajo. Una vez creada la conexión, la página Service Connector muestra información sobre la nueva conexión.
Clonación de una aplicación de ejemplo
Clone el repositorio de ejemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Vaya a la carpeta de ejemplo del repositorio del almacenamiento de Azure:
cd serviceconnector-aks-samples/azure-storage-workload-identity
Compilación e inserción de la imagen de contenedor
Compile e inserte las imágenes en el registro de contenedor mediante el comando
az acr build
de la CLI de Azure.az acr build --registry <MyRegistry> --image sc-demo-storage-identity:latest ./
Vea las imágenes del registro de contenedor mediante el comando
az acr repository list
.az acr repository list --name <MyRegistry> --output table
Ejecución de la aplicación y prueba de la conexión
Reemplace los marcadores de posición del archivo
pod.yaml
de la carpetaazure-storage-identity
.- Reemplace
<YourContainerImage>
por el nombre de la imagen que compilamos en el último paso (por ejemplo,<MyRegistry>.azurecr.io/sc-demo-storage-identity:latest
). - Reemplace
<ServiceAccountCreatedByServiceConnector>
por la cuenta de servicio creada por Service Connector después de la creación de la conexión. Puede comprobar el nombre de la cuenta de servicio en Azure Portal de Service Connector. - Reemplace
<SecretCreatedByServiceConnector>
por el secreto creado por Service Connector después de la creación de la conexión. Puede comprobar el nombre del secreto en Azure Portal de Service Connector.
- Reemplace
Implemente el pod en el clúster con el comando
kubectl apply
. Instalekubectl
localmente mediante el comando az aks install-cli si no está instalado. El comando crea un pod denominadosc-demo-storage-identity
en el espacio de nombres predeterminado del clúster de AKS.kubectl apply -f pod.yaml
Visualice el pod con
kubectl
para comprobar que la implementación se realiza correctamente.kubectl get pod/sc-demo-storage-identity.
Compruebe que la conexión se establezca mediante la visualización de los registros con
kubectl
.kubectl logs pod/sc-demo-storage-identity
Limpieza de recursos
Si no necesita volver a usar los recursos que ha creado en este tutorial, elimínelos todos mediante la eliminación del grupo de recursos.
az group delete \
--resource-group MyResourceGroup
Pasos siguientes
Lea los artículos siguientes para obtener más información sobre los conceptos de Service Connector y cómo ayuda a AKS a conectarse a los servicios.