Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você aprenderá a usar o Service Connector para conectar uma conta Armazenamento do Azure a um pod em um cluster AKS (Serviço de Kubernetes do Azure) usando a identidade da carga de trabalho. Conclua as seguintes tarefas:
- Crie um cluster do AKS e uma conta de Armazenamento do Azure.
- Crie uma conexão entre o cluster do AKS e a conta Armazenamento do Azure usando o Service Connector.
- Clone um aplicativo de exemplo que se conecta à conta Armazenamento do Azure do cluster do AKS.
- Implante o aplicativo em um pod no cluster do AKS e teste a conexão.
- Limpe os recursos.
Pré-requisitos
- Noções básicas sobre contêineres, identidade de carga de trabalho e AKS. Para obter mais informações, consulte Tutorial: Preparar um aplicativo para AKS (Serviço de Kubernetes do Azure).
- Uma assinatura Azure onde você tenha permissões de gravação de recursos do Azure, na região Azure que oferece suporte ao Service Connector e tem suporte suficiente ao AKS e cota de computação para executar o tutorial. Crie uma conta gratuitamente.
- Os provedores de recursos
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryeMicrosoft.ManagedIdentityregistrados na assinatura Azure. Você pode executaraz provider register -n Microsoft.[service]para registrar os provedores. - Git para acessar e clonar o repositório de exemplo.
-
Docker e kubectl instalados para gerenciar a imagem do contêiner e os recursos do Kubernetes. Instalar
kubectllocalmente executandoaz aks install-cli. - CLI do Azure instalado.
Criar recursos do Azure
Entre no Azure executando az login e seguindo os prompts.
Crie um grupo de recursos Azure a ser usado para este tutorial, substituindo o espaço reservado
<region>por um valor válido. Olocationdeve ser uma região Azure em que sua assinatura tenha cota de computação suficiente para os recursos de Azure e nenhuma restrição a nenhum dos serviços.az group create \ --name MyResourceGroup \ --location <region>Crie um cluster do AKS para conter a conexão de serviço, a definição do pod e o aplicativo de exemplo executando o comando a seguir. Para obter mais informações, consulte Quickstart: implantar um cluster de AKS (Serviço de Kubernetes do Azure) usando CLI do Azure.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Conecte-se ao cluster executando o comando a seguir.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCrie uma conta Armazenamento do Azure para ser o serviço de destino ao qual o cluster do AKS se conecta e o aplicativo de exemplo interage. Para obter mais informações, consulte Criar uma conta de armazenamento Azure. Execute o comando a seguir, substituindo
<storageaccountname>por um nome que seja de 3 a 24 caracteres minúsculos ou numéricos e seja exclusivo em Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSCrie um registro de contêiner Azure para hospedar a imagem de contêiner do aplicativo consumida pela definição de pod do AKS. Para obter mais informações, consulte Quickstart: Criar um registro de contêiner Azure usando o portal Azure. Execute o comando a seguir, substituindo
<registryname>por um nome de 5 a 50 caracteres minúsculos ou numéricos e exclusivo em Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardHabilite o pull anônimo para que o cluster do AKS possa consumir as imagens do registro. Substitua o marcador
<registryname>pelo nome do seu registro.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledExecute o comando a seguir para criar uma identidade gerenciada atribuída pelo usuário que a criação da conexão de serviço pode usar para habilitar a identidade da carga de trabalho para cargas de trabalho do AKS. Para obter mais informações, consulte Manage identidades gerenciadas atribuídas pelo usuário usando o portal Azure.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Criar uma conexão de serviço usando o Conector de Serviço
Crie uma conexão de serviço entre o cluster do AKS e a conta Armazenamento do Azure usando CLI do Azure ou o portal Azure.
Execute o comando CLI do Azure a seguir para criar uma conexão de serviço com a conta de armazenamento Azure. Substitua <storageaccountname> pelo nome da conta de armazenamento e <user-identity-resource-id> pela ID do recurso de identidade gerenciada atribuída pelo usuário.
Você pode obter a ID de recurso da identidade gerenciada atribuída ao usuário a partir da saída do comando az identity create anterior, 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 que a conexão é criada, a página conector de serviço do portal Azure mostra informações sobre a nova conexão. Você pode usar essas informações ao editar o arquivo pod.yaml mais adiante neste tutorial.
Criar o aplicativo de exemplo
Clone o repositório de exemplo e altere para o diretório que contém o aplicativo de exemplo. Execute os comandos restantes desta pasta.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityCompile e envie por push as imagens para o registro de contêiner usando o
az acr buildcomando. Substitua o<registryname>marcador de posição pelo nome do registro.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Exiba a imagem no registro de contêiner usando o
az acr repository listcomando. Substitua o<registryname>marcador de posição pelo nome do registro.az acr repository list --name <registryname> --output table
Executar o aplicativo e testar a conexão
Substitua os seguintes espaços reservados no arquivo pod.yaml na pasta do aplicativo local:
-
<YourContainerImage>: substitua pelo nome da imagem no registro de contêiner, por exemplo<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: substitua pelo Service Connector da conta de serviço criado após a criação da conexão. Você pode verificar o nome da conta de serviço na página do Conector de Serviço do cluster do AKS no portal do Azure. -
<SecretCreatedByServiceConnector>: substitua pelo conector de serviço secreto criado após a criação da conexão. Você pode verificar o nome da conta de serviço na página do Conector de Serviço do cluster do AKS no portal do Azure.
-
Implante o pod em seu cluster usando
kubectl apply. O comando cria um pod chamadosc-demo-storage-identityno namespace padrão de seu cluster do AKS.kubectl apply -f pod.yamlVerifique se a implantação foi bem-sucedida exibindo o pod usando
kubectl.kubectl get pod/sc-demo-storage-identityVerifique se a conexão está estabelecida exibindo os logs usando
kubectl.kubectl logs pod/sc-demo-storage-identity
Limpar os recursos
Se você não precisar mais dos recursos Azure criados para este tutorial, poderá excluí-los excluindo o grupo de recursos MyResourceGroup.
az group delete \
--resource-group MyResourceGroup