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.
Importante
O Service Connect no AKS está atualmente em versão prévia. Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
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 Service Connector (versão prévia)
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.