Configurar seu ambiente do Azure

Concluído(a)

Nesta unidade, você usa a CLI do Azure para criar os recursos do Azure necessários em unidades posteriores. Antes de começar a inserir comandos, verifique se o Docker Desktop ou o Docker Engine no Linux está instalado e em execução.

Os exemplos neste módulo usam a sintaxe bash, incluindo export e continuações de linha de barra invertida. Use uma sessão bash local para os exercícios. Em Windows, use uma distribuição Linux do WSL 2 com a integração com o Docker Desktop habilitada; instale e use a CLI do Azure para Linux e o Git nessa distribuição. No macOS ou linux, use uma sessão bash local com acesso ao seu daemon do Docker.

Azure Cloud Shell pode executar Azure comandos de gerenciamento, mas ele não executa um daemon do Docker e não é um substituto para as etapas locais de build de imagem e execução de contêiner deste módulo. O PowerShell nativo e o Prompt de Comando exigem uma sintaxe de variável e de continuação de linha diferentes.

Na sessão bash que você usará para os exercícios, verifique suas ferramentas antes de criar recursos Azure:

git --version
az version
docker version

Confirme se todos os três comandos foram bem-sucedidos e se docker version mostra um Server acessível, bem como o cliente. Se o servidor não estiver disponível, corrija a integração do Docker Desktop, do Docker Engine ou do WSL antes de continuar.

Para economizar tempo, você pode instruir o Azure a provisionar os recursos primeiro e, em seguida, passar para a próxima unidade. A criação de cluster do AKS (Serviço de Kubernetes do Azure) pode levar até 10 minutos. Esse processo pode ser executado em segundo plano enquanto você passa pelas unidades subsequentes.

Autenticar com o Azure Resource Manager

Use o seguinte comando para entrar:

az login

Selecionar uma assinatura do Azure

As assinaturas do Azure são contêineres lógicos usados para provisionar recursos no Azure. Use o comando a seguir para listar suas assinaturas do Azure e, em seguida, localize a ID da assinatura - o SubscriptionId valor - que você planeja usar neste módulo.

az account list --output table

Use o seguinte comando para garantir que você esteja usando uma assinatura do Azure que permite criar recursos para os fins deste módulo, substituindo seu valor preferencial SubscriptionId pelo espaço reservado:

az account set --subscription "<your-subscription-ID>"

Definir variáveis locais

Para simplificar os comandos usados posteriormente, configure as variáveis de ambiente a seguir. Substitua os seguintes espaços reservados por seus próprios valores:

  • Substitua <your-Azure-region> por sua região de escolha , por exemplo, eastus.
  • Substitua <your-container-registry> por um valor exclusivo. Esse valor é usado para gerar um FQDN (nome de domínio totalmente qualificado) exclusivo para o registro de contêiner do Azure quando ele é criado.
  • Substitua <your-unique-DNS-prefix-to-access-your-AKS-cluster> por um valor exclusivo. Esse valor é usado para gerar um FQDN exclusivo para o cluster do AKS quando ele é criado.

Observação

Os nomes do Registro de Contêiner do Azure devem ser globalmente exclusivos em toda a plataforma Azure e conter de 5 a 50 caracteres alfanuméricos (somente letras e números). Hifens e sublinhados não são permitidos. Substitua <your-container-registry> por um nome compatível e disponível antes de definir AZ_CONTAINER_REGISTRY. Para obter mais informações, consulte os requisitos de nomenclatura do Registro de Contêiner.

export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>

Criar um grupo de recursos do Azure

Os grupos de recursos do Azure são contêineres do Azure em assinaturas do Azure para manter recursos relacionados para uma solução do Azure. Crie um grupo de recursos usando o seguinte comando:

az group create \
    --name $AZ_RESOURCE_GROUP \
    --location $AZ_LOCATION \
| jq

Observação

Este módulo usa a jq ferramenta, que é instalada por padrão no Azure Cloud Shell para exibir dados JSON e torná-los mais legíveis.

Se não quiser usar a ferramenta jq, você poderá remover com segurança a parte | jq de todos os comandos deste módulo.

Criar um registro de contêiner do Azure

O Registro de Contêiner do Azure permite que você crie, armazene e gerencie imagens de contêiner, incluindo uma imagem de contêiner para este aplicativo Java. Crie um registro de contêiner usando o seguinte comando:

az acr create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_CONTAINER_REGISTRY \
    --sku Basic \
    --role-assignment-mode rbac \
| jq

A --role-assignment-mode rbac opção seleciona explicitamente permissões somente rbac (controle de acesso baseado em função). Isso preserva a integração AcrPull e --attach-acr usada neste exercício.

Para qualquer registro novo ou reutilizado que utilize Registro com RBAC + Permissões de Repositório com ABAC, — o qual oferece suporte ao controle de acesso baseado em atributos (ABAC) —, o item --attach-acr não é compatível. Em vez disso, o fluxo de trabalho de integração habilitado para ABAC requer Container Registry Repository Reader para a identidade do kubelet e permissões apropriadas no repositório para a identidade de publicação. Siga esse fluxo de trabalho em vez de executar os comandos de integração deste exercício inalterados. Microsoft recomenda o modo habilitado para ABAC; a configuração somente RBAC deste exercício não é uma recomendação para fazer downgrade de um registro habilitado para ABAC existente.

Use o seguinte comando para configurar a CLI do Azure para usar este registro de contêiner do Azure recém-criado:

az configure --defaults acr=$AZ_CONTAINER_REGISTRY

Use o seguinte comando para autenticar no registro de contêiner do Azure recém-criado:

Observação

Antes de executar o comando az acr login, certifique-se de que o Docker Desktop ou o Docker Engine (no Linux) esteja em execução e que seu daemon esteja acessível a partir da sua sessão Bash. Se não puder ser alcançado, você receberá uma mensagem de erro semelhante a Cannot connect to the Docker daemon at unix:///$HOME_DIR/.docker/run/docker.sock. Is the docker daemon running?

az acr login --name $AZ_CONTAINER_REGISTRY

Criar um cluster do Serviço de Kubernetes do Azure

Você precisa de um cluster do AKS para implantar a imagem de contêiner do aplicativo Java.

Importante

A --attach-acr opção atribui a AcrPull função à identidade do kubelet do AKS. Além da permissão para criar os recursos, sua conta precisa de Microsoft.Authorization/roleAssignments/write no escopo do registro ou em um escopo superior (ancestral). Colaborador por si só não concede essa permissão. Se necessário, solicite ao seu administrador do Azure que realize a integração ou conceda uma atribuição de função com o escopo adequado — como, por exemplo, Administrador de Controle de Acesso Baseado em Funções (RBAC) —, juntamente com as permissões de gerenciamento de recursos necessárias.

Crie um cluster do AKS usando o seguinte comando:

az aks create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_KUBERNETES_CLUSTER \
    --attach-acr $AZ_CONTAINER_REGISTRY \
    --dns-name-prefix=$AZ_KUBERNETES_CLUSTER_DNS_PREFIX \
    --generate-ssh-keys \
| jq

Observação

A criação de um cluster do AKS pode levar até 10 minutos. Depois de executar o comando anterior, você pode deixá-lo continuar na guia da CLI do Azure e passar para a próxima unidade.