Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come usare Service Connector per connettere un account Archiviazione di Azure a un pod in un cluster Servizio Azure Kubernetes (AKS) usando l'identità del carico di lavoro. Completare le attività seguenti:
- Creare un cluster AKS e un account di archiviazione di Azure.
- Creare una connessione tra il cluster AKS e l'account Archiviazione di Azure usando Service Connector.
- Clonare un'applicazione di esempio che si connette all'account di archiviazione Azure dal cluster AKS.
- Distribuire l'applicazione in un pod nel cluster del servizio Azure Kubernetes e testare la connessione.
- Pulire le risorse.
Prerequisiti
- Conoscenza di base di contenitori, identità del carico di lavoro e AKS. Per altre informazioni, vedere Tutorial: Preparare un'applicazione per Servizio Azure Kubernetes (AKS).
- Una sottoscrizione Azure in cui si dispone delle autorizzazioni di scrittura delle risorse di Azure, in un'area di Azure che supporta Service Connector e dispone di sufficiente supporto AKS e quota di calcolo per eseguire l'esercitazione. Creare un account gratuitamente.
- Provider di risorse
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryeMicrosoft.ManagedIdentityregistrati nella sottoscrizione di Azure. È possibile eseguireaz provider register -n Microsoft.[service]per registrare i provider. - Git per accedere e clonare il repository di esempio.
-
Docker e kubectl installati per gestire le risorse di immagine del contenitore e Kubernetes. Installare
kubectllocalmente eseguendoaz aks install-cli. - interfaccia della riga di comando di Azure installato.
Creare risorse Azure
Accedere a Azure eseguendo az login e seguendo le istruzioni.
Creare un gruppo di risorse Azure da usare per questa esercitazione, sostituendo il segnaposto
<region>con un valore valido. L'locationdeve essere un'area Azure in cui la sottoscrizione dispone di una quota di calcolo sufficiente per le risorse Azure e nessuna restrizione per nessuno dei servizi.az group create \ --name MyResourceGroup \ --location <region>Eseguendo il comando seguente, creare un cluster AKS per contenere la connessione del servizio, la definizione del pod e l'applicazione di esempio. Per altre informazioni, vedere Quickstart: Distribuire un cluster Servizio Azure Kubernetes (AKS) usando interfaccia della riga di comando di Azure.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Connettersi al cluster eseguendo il comando seguente.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCreare un account Archiviazione di Azure come servizio obiettivo al quale si connette il cluster AKS e con cui l'applicazione di esempio interagisce. Per altre informazioni, vedere Creare un account di archiviazione Azure. Eseguire il comando seguente, sostituendo
<storageaccountname>con un nome di 3-24 caratteri minuscoli o numerici ed è univoco in Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSCreare un Azure Container Registry per ospitare l'immagine del contenitore dell'applicazione utilizzata dalla definizione del pod in Azure Kubernetes Service (AKS). Per altre informazioni, vedere Quickstart: Creare un registro contenitori Azure usando il portale di Azure. Eseguire il comando seguente, sostituendo
<registryname>con un nome di 5-50 caratteri minuscoli o numerici e deve essere univoco in Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardAbilitare il pull anonimo in modo che il cluster AKS possa usare le immagini del registro. Sostituire il
<registryname>segnaposto con il nome del registro.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledEseguire il comando seguente per creare un'identità gestita assegnata dall'utente che la creazione della connessione al servizio può usare per abilitare il workload identity per i carichi di lavoro su AKS. Per altre informazioni, vedere Gestire le identità gestite assegnate dall'utente usando il portale di Azure.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Creare una connessione di servizio con il Connettore di servizi
Creare una connessione di servizio tra il cluster AKS e l'account Archiviazione di Azure utilizzando interfaccia della riga di comando di Azure o il portale di Azure.
Eseguire il comando interfaccia della riga di comando di Azure seguente per creare una connessione del servizio all'account di archiviazione Azure. Sostituire <storageaccountname> con il nome dell'account di archiviazione e <user-identity-resource-id> con l'ID risorsa identità gestita assegnata dall'utente.
È possibile ottenere l'ID della risorsa dell'identità gestita assegnata dall'utente dall'output del comando az identity create precedente oppure usare il 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>
Dopo aver creato la connessione, nella pagina del connettore di servizi del portale di Azure vengono visualizzate informazioni sulla nuova connessione. È possibile usare queste informazioni quando si modifica il file pod.yaml più avanti in questa esercitazione.
Creare l'applicazione di esempio
Clonare il repository di esempio e quindi passare alla directory che contiene l'app di esempio. Eseguire i comandi rimanenti da questa cartella.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityCompilare ed eseguire il push delle immagini nel registro dei contenitori usando il comando
az acr build. Sostituire il<registryname>segnaposto con il nome del registro.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Usando il comando
az acr repository list, visualizzare l'immagine nel registro contenitori. Sostituire il<registryname>segnaposto con il nome del registro.az acr repository list --name <registryname> --output table
Eseguire l'applicazione e testare la connessione
Sostituire i segnaposto seguenti nel file pod.yaml nella cartella dell'app locale.
-
<YourContainerImage>: sostituire con il nome dell'immagine nel registro contenitori, ad esempio<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: Sostituire con l'account del servizio Service Connector creato dopo la connessione. È possibile controllare il nome dell'account del servizio nella pagina del connettore di servizio del cluster AKS nel portale di Azure. -
<SecretCreatedByServiceConnector>: sostituire con il connettore del servizio segreto creato dopo la creazione della connessione. È possibile controllare il nome dell'account del servizio nella pagina Connettore di Servizio del cluster AKS nel portale di Azure.
-
Distribuire il pod nel cluster usando
kubectl apply. Il comando crea un pod denominatosc-demo-storage-identitynello spazio dei nomi predefinito del cluster del servizio Azure Kubernetes.kubectl apply -f pod.yamlVerificare che la distribuzione sia riuscita visualizzando il pod usando
kubectl.kubectl get pod/sc-demo-storage-identityVerificare che la connessione venga stabilita visualizzando i log usando
kubectl.kubectl logs pod/sc-demo-storage-identity
Pulire le risorse
Se per questa esercitazione non sono più necessarie le risorse Azure create, è possibile eliminarle eliminando il gruppo di risorse MyResourceGroup.
az group delete \
--resource-group MyResourceGroup