Compartilhar via


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

Criar recursos do Azure

  1. Crie um grupo de recursos para este tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. 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
    
  3. Conecte-se ao cluster com o seguinte comando.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. 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
    
  5. 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
    
  6. 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.

  1. Abra o Serviço do Kubernetes no portal do Microsoft Azure e selecione Conector de Serviço no menu à esquerda.

  2. 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.
  3. Depois que a conexão for criada, a página Conector de Serviço exibirá informações sobre a nova conexão. Captura de tela do portal do Azure exibindo recursos do Kubernetes criados pelo Conector de Serviço.

Clonar aplicativo de exemplo

  1. Clone o repositório de exemplo:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. 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

  1. 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 ./
    
  2. 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

  1. Substitua os espaços reservados no arquivo pod.yaml da pasta azure-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.
  2. Implante o pod em seu cluster com o comando kubectl apply. Instale kubectl localmente usando o comando az aks install-cli se ele não estiver instalado. O comando cria um pod chamado sc-demo-storage-identity no namespace padrão de seu cluster do AKS.

    kubectl apply -f pod.yaml
    
  3. Verifique se a implantação foi bem-sucedida exibindo o pod com kubectl.

    kubectl get pod/sc-demo-storage-identity.
    
  4. 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.