Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, aprende a usar o Service Connector para ligar uma conta Armazenamento do Azure a um pod num cluster Azure Kubernetes Service (AKS) usando a identidade da carga de trabalho. Conclua as seguintes tarefas:
- Crie um cluster AKS e uma conta Armazenamento do Azure.
- Crie uma ligação entre o cluster AKS e a conta do Armazenamento do Azure usando o Service Connector.
- Clone uma aplicação de exemplo que se ligue à conta Armazenamento do Azure a partir do cluster AKS.
- Implante a aplicação num pod no cluster AKS e teste a ligação.
- Limpe os recursos.
Pré-requisitos
- Compreensão básica de contentores, identidade de carga de trabalho e AKS. Para mais informações, consulte Tutorial: Prepare uma candidatura para Azure Kubernetes Service (AKS).
- Uma subscrição Azure onde tens permissões Azure de escrita de recursos, numa região Azure que suporta o Service Connector e tem suporte suficiente AKS e quota de computação para correr o tutorial. Crie uma conta gratuitamente.
- Os fornecedores de recursos
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryeMicrosoft.ManagedIdentityregistados na subscrição Azure. Pode executaraz provider register -n Microsoft.[service]para registar os fornecedores. - Git para aceder e clonar o repositório de exemplos.
-
Docker e kubectl instalados para gerir a imagem do contentor e os recursos do Kubernetes. Instale
kubectllocalmente executandoaz aks install-cli. - CLI do Azure instalado.
Criar recursos do Azure
Inicie sessão no Azure executando az login e seguindo as indicações.
Crie um grupo de recursos Azure para usar neste tutorial, substituindo o marcador
<region>por um valor válido. Olocationdeve ser uma região Azure onde a sua subscrição tenha uma quota de computação suficiente para os recursos Azure e sem restrições em nenhum dos serviços.az group create \ --name MyResourceGroup \ --location <region>Crie um cluster AKS para conter a ligação de serviço, definição de pod e aplicação de exemplo, executando o seguinte comando. Para mais informações, consulte Quickstart: Implemente um cluster de Azure Kubernetes Service (AKS) usando CLI do Azure.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Ligue-se ao cluster executando o seguinte comando.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCrie uma conta Armazenamento do Azure para ser o serviço alvo ao qual o cluster AKS se liga e com o qual a aplicação de exemplo interage. Para obter mais informações, consulte Criar uma conta de armazenamento do Azure. Execute o comando seguinte, substituindo
<storageaccountname>por um nome que seja de 3 a 24 caracteres minúsculos ou numéricos e que seja único em Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSCrie um registo de contentores Azure para armazenar a imagem do contentor da aplicação utilizada na definição do pod AKS. Para mais informações, consulte Quickstart: Crie um registo de contentores Azure usando o portal Azure. Execute o comando seguinte, substituindo
<registryname>por um nome que seja de 5 a 50 caracteres minúsculos ou numéricos e que seja único entre Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardAtive a extração anónima para que o cluster AKS possa consumir as imagens do registro. Substitua o
<registryname>pelo nome do seu registo.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledExecute o seguinte comando para criar uma identidade gerida atribuída pelo utilizador que a criação da ligação ao serviço possa usar para ativar a identidade da carga de trabalho para cargas de trabalho do AKS. Para mais informações, consulte Gerir identidades geridas atribuídas pelo utilizador usando o portal Azure.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Criar uma conexão de serviço usando o Service Connector
Crie uma ligação de serviço entre o cluster AKS e a conta Armazenamento do Azure usando CLI do Azure ou o portal Azure.
Execute o seguinte comando CLI do Azure para criar uma ligação de serviço à conta de armazenamento Azure. Substitua <storageaccountname> pelo nome da sua conta de armazenamento e <user-identity-resource-id> pelo ID de recurso de identidade gerida atribuído pelo utilizador.
Pode obter o ID de recurso de identidade gerida atribuído pelo utilizador a partir da saída do comando anterior az identity create, ou usar o 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>
Depois de criada a ligação, a página do Conector de Serviço do portal Azure mostra informações sobre a nova ligação. Podes usar esta informação quando editares o ficheiro pod.yaml mais tarde neste tutorial.
Criar o aplicativo de exemplo
Clone o repositório de exemplos e depois mude para o diretório que contém a aplicação de exemplo. Executa os comandos restantes desta pasta.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityConstrói e envia as imagens para o registo do teu contentor usando o
az acr buildcomando. Substitua o marcador de posição<registryname>pelo nome do registo.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Veja a imagem no seu registo de contentores usando o
az acr repository listcomando. Substitua o<registryname>pelo nome do seu registo.az acr repository list --name <registryname> --output table
Executar aplicativo e testar conexão
Substitua os seguintes marcadores de posição no ficheiro pod.yaml da sua pasta local da app:
-
<YourContainerImage>: Substitua pelo nome da imagem no seu registo de contentores, por exemplo<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: Substituir pelo Service Connector da conta de serviço criado após a criação da ligação. Pode verificar o nome da conta de serviço na página do seu Conector de Serviço do cluster AKS no portal Azure. -
<SecretCreatedByServiceConnector>: Substituir pelo Conector de Serviço secreto criado após a criação da ligação. Pode verificar o nome da conta de serviço na página do seu Conector de Serviço do cluster AKS no portal Azure.
-
Implante o pod no seu cluster usando
kubectl apply. O comando cria um pod nomeadosc-demo-storage-identityno namespace padrão do seu cluster AKS.kubectl apply -f pod.yamlVerifique se a implementação foi bem-sucedida visualizando o pod usando
kubectl.kubectl get pod/sc-demo-storage-identityVerifique se a ligação está estabelecida visualizando os registos usando
kubectl.kubectl logs pod/sc-demo-storage-identity
Limpar recursos
Se já não precisares dos recursos Azure que criaste para este tutorial, podes apagá-los eliminando o grupo de recursos MyResourceGroup.
az group delete \
--resource-group MyResourceGroup