Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous allez apprendre à utiliser Service Connector pour connecter un compte stockage Azure à un pod d’un cluster Azure Kubernetes Service (AKS) à l’aide de l’identité de charge de travail. Effectuez les tâches suivantes :
- Créez un cluster AKS et un compte stockage Azure.
- Créez une connexion entre le cluster AKS et le compte stockage Azure à l’aide de Service Connector.
- Clonez un exemple d’application qui se connecte au compte stockage Azure à partir du cluster AKS.
- Déployez l’application sur un pod dans le cluster AKS et testez la connexion.
- Libérer des ressources.
Prérequis
- Notions de base sur les conteneurs, l'identité de charge de travail et AKS. Pour plus d’informations, consultez Tutorial : Préparer une application pour Azure Kubernetes Service (AKS).
- Un abonnement Azure dans lequel vous disposez d’autorisations d’écriture sur les ressources Azure, dans une région Azure qui prend en charge le Service Connector et dispose de suffisamment de support AKS et de quota de calcul afin d'exécuter le didacticiel. Créez un compte gratuitement.
- Les fournisseurs de ressources
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryetMicrosoft.ManagedIdentityinscrits dans l’abonnement Azure. Vous pouvez exécuteraz provider register -n Microsoft.[service]pour inscrire les fournisseurs. - Git pour accéder à l’exemple de dépôt et le cloner.
-
Docker et kubectl installés pour gérer les images de conteneur et les ressources Kubernetes. Installez
kubectllocalement en exécutantaz aks install-cli. - Azure CLI installé.
Créer des ressources Azure
Connectez-vous à Azure en exécutant az login et en suivant les invites.
Créez un groupe de ressources Azure à utiliser pour ce didacticiel, en remplaçant l’espace réservé
<region>par une valeur valide. Lelocationdoit être une région Azure où votre abonnement dispose d’un quota de calcul suffisant pour les ressources Azure et aucune restriction sur les services.az group create \ --name MyResourceGroup \ --location <region>Créez un cluster AKS pour contenir la connexion de service, la définition de pod et l’exemple d’application en exécutant la commande suivante. Pour plus d’informations, consultez Quickstart : Déployer un cluster Azure Kubernetes Service (AKS) à l’aide de Azure CLI.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Connectez-vous au cluster en exécutant la commande suivante.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCréez un compte stockage Azure pour être le service cible auquel le cluster AKS se connecte et l’exemple d’application interagit avec. Pour plus d’informations, consultez Créer un compte de stockage Azure. Exécutez la commande suivante, en remplaçant
<storageaccountname>par un nom de 3 à 24 caractères minuscules ou numériques et unique sur Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSCréez un registre de conteneurs Azure pour héberger l'image de conteneur de l'application utilisée par la définition de pod AKS. Pour plus d’informations, consultez Quickstart : Créer un registre de conteneurs Azure à l’aide du portail Azure. Exécutez la commande suivante, en remplaçant
<registryname>par un nom de 5 à 50 caractères minuscules ou numériques et unique entre Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardActivez l'extraction anonyme afin que le cluster AKS puisse consommer les images de registre. Remplacez l’espace
<registryname>réservé par le nom de votre registre.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledExécutez la commande suivante pour créer une identité managée attribuée par l'utilisateur, utilisée par la création de la connexion de service pour activer l'identité de charge de travail pour les charges de travail AKS. Pour plus d’informations, consultez Identités managées affectées par l’utilisateur à l’aide du portail Azure.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Créez une connexion de service à l’aide du Connecteur de services
Créez une connexion de service entre le cluster AKS et le compte stockage Azure à l’aide de Azure CLI ou du portail Azure.
Exécutez la commande Azure CLI suivante pour créer une connexion de service au compte de stockage Azure. Remplacez <storageaccountname> par le nom de votre compte de stockage et <user-identity-resource-id> par votre ID de ressource d’identité managée affectée par l’utilisateur.
Vous pouvez obtenir votre ID de ressource d’identité managée affectée par l’utilisateur à partir de la sortie de la commande az identity create précédente, ou utiliser le format /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>
Une fois la connexion créée, la page Azure portal Service Connector affiche des informations sur la nouvelle connexion. Vous pouvez utiliser ces informations lorsque vous modifiez le fichier pod.yaml plus loin dans ce tutoriel.
Créer l’exemple d’application
Clonez l’exemple de référentiel, puis passez au répertoire qui contient l’exemple d’application. Exécutez les commandes restantes à partir de ce dossier.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityGénérez et envoyez (push) les images à votre registre de conteneurs à l’aide de la
az acr buildcommande. Remplacez l’espace<registryname>réservé par le nom de votre registre.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Affichez l’image dans votre registre de conteneurs à l’aide de la
az acr repository listcommande. Remplacez l’espace<registryname>réservé par le nom de votre registre.az acr repository list --name <registryname> --output table
Exécuter l’application et tester la connexion
Remplacez les espaces réservés suivants dans le fichier pod.yaml dans votre dossier d’application locale :
-
<YourContainerImage>: remplacez par le nom de l’image dans votre registre de conteneurs, par exemple<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: remplacez par le compte de service Service Connector créé après la création de la connexion. Vous pouvez vérifier le nom du compte de service sur votre page Connecteur de service de cluster AKS dans le portail Azure. -
<SecretCreatedByServiceConnector>: Remplacez par le "Secret Service Connector" créé après avoir créé la connexion. Vous pouvez vérifier le nom du compte de service sur votre page Connecteur de service de cluster AKS dans le portail Azure.
-
Déployez le pod sur votre cluster à l’aide de
kubectl apply. La commande crée un pod nommésc-demo-storage-identitydans l’espace de noms par défaut de votre cluster AKS.kubectl apply -f pod.yamlVérifiez que le déploiement réussit en affichant le pod à l'aide de
kubectl.kubectl get pod/sc-demo-storage-identityVérifiez que la connexion est établie en affichant les journaux à l’aide de
kubectl.kubectl logs pod/sc-demo-storage-identity
Nettoyer les ressources
Si vous n’avez plus besoin des ressources Azure que vous avez créées pour ce didacticiel, vous pouvez les supprimer en supprimant le groupe de ressources MyResourceGroup.
az group delete \
--resource-group MyResourceGroup