Tutorial: Conectar-se à conta de armazenamento do Azure no AKS (Serviço de Kubernetes do Azure) com o Conector de Serviço usando a identidade da carga de trabalho
Saiba como criar um pod em um cluster AKS, que se comunica com uma conta de armazenamento do Azure usando a identidade da carga de trabalho com a ajuda do Conector de Serviço. Neste tutorial, você completa 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 de armazenamento do Azure com o Conector de Serviço.
- Clone um aplicativo de exemplo que se comunicará com a conta de armazenamento do Azure a partir de um cluster do AKS.
- Implante o aplicativo em um pod no cluster do AKS e teste a conexão.
- Limpe os recursos.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Instale a CLI do Azure e entre na CLI do Azure usando o comando az login.
- Instale o Dockere kubectl para gerenciar a imagem do contêiner e os recursos do Kubernetes.
- Conhecimento básico de contêineres e AKS. Introdução à preparação de um aplicativo para o AKS.
- Uma compreensão básica da identidade da carga de trabalho.
Criar recursos do Azure
Crie um grupo de recursos para este tutorial.
az group create \ --name MyResourceGroup \ --location eastus
Crie um cluster do AKS com o seguinte comando ou consulte o tutorial. Criamos a conexão de serviço, a definição de pod e implantamos o aplicativo de exemplo nesse cluster.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
Conecte-se ao cluster com o seguinte comando.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Crie uma conta de armazenamento do Azure com o seguinte comando ou consulte o tutorial. Esse é o serviço de destino que está conectado ao cluster do AKS e com o qual o aplicativo de exemplo interage.
az storage account create \ --resource-group MyResourceGroup \ --name MyStorageAccount \ --location eastus \ --sku Standard_LRS
Crie um registro de contêiner do Azure com o seguinte comando ou consulte o tutorial. O registro hospeda a imagem de contêiner do aplicativo de exemplo, que será consumida pela definição de pod do AKS.
az acr create \ --resource-group MyResourceGroup \ --name MyRegistry \ --sku Standard
E habilite o pull anônimo para que o cluster do AKS possa consumir as imagens no registro.
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
Crie uma identidade gerenciada atribuída pelo usuário com o seguinte comando ou consulte o tutorial. A identidade gerenciada atribuída pelo usuário é usada na criação da conexão de serviço para habilitar a identidade da carga de trabalho para cargas de trabalho do AKS.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Criar conexão de serviço com o Conector de Serviço
Crie uma conexão de serviço entre um cluster do AKS e uma conta de armazenamento do Azure usando o portal do Azure ou a CLI do Azure.
Abra o Serviço do Kubernetes no portal do Microsoft Azure e selecione Conector de Serviço no menu à esquerda.
Selecione Criar e preencha as configurações conforme mostrado abaixo. Deixe as outras configurações com seus valores padrão.
Guia Básico:
Configuração Opção Descrição Namespace do Kubernetes padrão O namespace em que você precisa da conexão no cluster. Tipo de serviço Armazenamento – Blob O tipo de serviço de destino. Nome da conexão storage_conn Use o nome da conexão fornecido pelo Conector de Serviço ou escolha um nome de conexão próprio. Assinatura <MySubscription>
A assinatura do serviço de destino do Armazenamento de Blobs do Azure. Conta de armazenamento <MyStorageAccount>
A conta de armazenamento de destino à qual você deseja se conectar. Tipo de cliente Python A linguagem de código ou a estrutura que você usa para se conectar ao serviço de destino. Guia Autenticação:
Configuração de Autenticação Opção Descrição Tipo de autenticação Identidade da Carga de Trabalho Tipo de autenticação do Conector de Serviço. Identidade gerenciada atribuída ao usuário <MyIdentity>
Em seguida, selecione uma identidade gerenciada atribuída pelo usuário para habilitar a identidade da carga de trabalho. Depois que a conexão for criada, a página Conector de Serviço exibirá informações sobre a nova conexão.
Clonar aplicativo de exemplo
Clone o repositório de exemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Vá para a pasta de exemplo do repositório para armazenamento do Azure:
cd serviceconnector-aks-samples/azure-storage-workload-identity
Compilar e efetuar push da imagem do contêiner
Compile e efetue push das imagens para o registro de contêiner usando o comando
az acr build
da CLI do Azure.az acr build --registry <MyRegistry> --image sc-demo-storage-identity:latest ./
Exiba as imagens no registro do contêiner usando o comando
az acr repository list
.az acr repository list --name <MyRegistry> --output table
Executar o aplicativo e testar a conexão
Substitua os espaços reservados no arquivo
pod.yaml
da pastaazure-storage-identity
.- Substitua
<YourContainerImage>
pelo nome da imagem que criamos na última etapa, por exemplo,<MyRegistry>.azurecr.io/sc-demo-storage-identity:latest
. - Substitua
<ServiceAccountCreatedByServiceConnector>
pela conta de serviço criada pelo Conector de Serviço após a criação da conexão. Você pode verificar o nome da conta de serviço no portal do Azure do Conector de Serviço. - Substitua
<SecretCreatedByServiceConnector>
pelo segredo criado pelo Conector de Serviço após a criação da conexão. Você pode verificar o nome do segredo no portal do Azure do Conector de Serviço.
- Substitua
Implante o pod em seu cluster com o comando
kubectl apply
. Instalekubectl
localmente usando o comando az aks install-cli se ele não estiver instalado. O comando cria um pod chamadosc-demo-storage-identity
no namespace padrão de seu cluster do AKS.kubectl apply -f pod.yaml
Verifique se a implantação foi bem-sucedida exibindo o pod com
kubectl
.kubectl get pod/sc-demo-storage-identity.
Verifique se a conexão foi estabelecida exibindo os logs com
kubectl
.kubectl logs pod/sc-demo-storage-identity
Limpar os recursos
Se você não precisar reutilizar os recursos que criou neste tutorial, exclua todos os recursos que criou excluindo seu grupo de recursos.
az group delete \
--resource-group MyResourceGroup
Próximas etapas
Leia os artigos a seguir para saber mais sobre os conceitos do Conector de Serviço e como ele ajuda o AKS a se conectar aos serviços.