Configurar seu ambiente do Azure

Concluído

Nesta unidade, você usa a CLI do Azure para criar os recursos do Azure necessários em unidades posteriores. Antes de começares a introduzir comandos, certifica-te de que o Docker Desktop ou o Docker Engine no Linux está instalado e a funcionar.

Os exemplos neste módulo utilizam a sintaxe Bash, incluindo export e continuações de linhas com barra inversa. Usa uma sessão local de Bash para os exercícios. No Windows, use uma distribuição Linux WSL 2 com integração no Docker Desktop ativada; instale e use a linha de comando do CLI do Azure e o Git do Linux nessa distribuição. No macOS ou Linux, usa uma sessão local de Bash com acesso ao teu daemon Docker.

O Azure Cloud Shell pode executar comandos de gestão do Azure, mas não executa um daemon Docker e não substitui os passos de construção local de imagem e execução de containers deste módulo. O PowerShell nativo e o Prompt de Comando requerem uma sintaxe diferente de variáveis e de continuação de linhas.

Na sessão de Bash que vais usar para os exercícios, verifica as tuas ferramentas antes de criares os recursos do Azure:

git --version
az version
docker version

Confirme que os três comandos têm sucesso e que docker version mostra um Server acessível, assim como o cliente. Se o servidor não estiver disponível, corrija o Docker Desktop, o Docker Engine ou a integração com o WSL antes de avançar.

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 Serviço Kubernetes do Azure (AKS) pode levar até 10 minutos. Esse processo pode ser executado em segundo plano enquanto você prossegue pelas unidades subsequentes.

Autenticar com o Azure Resource Manager

Use o seguinte comando para entrar:

az login

Selecione 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 localize a ID da assinatura - o SubscriptionId valor - que você planeja usar neste módulo.

az account list --output table

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

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

Definir variáveis locais

Para simplificar os comandos que você usa posteriormente, configure as seguintes variáveis de ambiente. Certifique-se de substituir os seguintes espaços reservados pelos seus valores próprios.

  • Substitua <your-Azure-region> pela 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 seu 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 seu cluster AKS quando ele é criado.

Observação

Os nomes dos registos de contentores do Azure devem ser globalmente únicos em todo o Azure e conter entre 5 a 50 caracteres alfanuméricos (apenas letras e números). Hífens 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 mais informações, consulte Requisitos de nomeação de registos de contentores.

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 armazenar 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 ferramenta jq, que é instalada por padrão em do Azure Cloud Shell para exibir dados JSON e torná-los mais legíveis.

Se você não quiser usar a ferramenta jq, você pode remover com segurança a parte | jq de todos os comandos neste 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 apenas para controlo de acesso baseado em papéis (RBAC). Isto preserva a integração --attach-acr e AcrPull utilizada neste exercício.

Para qualquer registo novo ou reutilizado que utilize RBAC Registry + ABAC Repository Permissions, que suporte controlo de acesso baseado em atributos (ABAC), --attach-acr não é suportado. O fluxo de trabalho de integração habilitado por ABAC requer, em vez disso, Container Registry Repository Reader para a identidade kubelet e permissões adequadas de 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. A Microsoft recomenda o modo ABAC habilitado; a definição apenas RBAC deste exercício não é uma recomendação para fazer downgrade de um registo ABAC já existente.

Use o seguinte comando para configurar a CLI do Azure para usar esse 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 executares o az acr login comando, certifica-te de que o Docker Desktop ou o Docker Engine no Linux estão a correr e que o seu daemon está acessível a partir da tua sessão Bash. Se não for atingível, recebe 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 Azure Kubernetes Service

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

Importante

A --attach-acr opção atribui o AcrPull papel à identidade kubelet do AKS. Para além da permissão para criar os recursos, a sua conta precisa de Microsoft.Authorization/roleAssignments/write no âmbito do registo ou num âmbito ancestral. Colaborador por si só não concede esta permissão. Se necessário, peça ao seu administrador do Azure para realizar a integração ou conceder acesso para atribuição de funções com o âmbito adequado, como Role Based Controlo de Acesso Administrator, juntamente com as permissões de gestão de recursos necessárias.

Crie um cluster 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 AKS pode levar até 10 minutos. Depois de executar o comando anterior, você pode deixá-lo continuar na guia CLI do Azure e passar para a próxima unidade.