Compartilhar via


Fornecer uma rede virtual para um ambiente interno de Aplicativos de Contêiner do Azure

O exemplo a seguir mostra como criar um ambiente de Aplicativos de Contêiner em uma rede virtual existente.

Para começar, entre no portal do Azure.

Criar um aplicativo de contêiner

Para criar o aplicativo de contêiner, comece na home page do portal do Azure.

  1. Pesquise por Aplicativos de Contêiner na barra de pesquisa superior.
  2. Selecione Aplicativos de Contêiner nos resultados da pesquisa.
  3. Selecione o botão Criar.

Guia Básico

Na guia Básico, execute as ações a seguir.

  1. Insira os valores a seguir na seção Detalhes do projeto.

    Configuração Ação
    Subscription Selecione sua assinatura do Azure.
    Resource group Selecione Criar e insira my-container-apps.
    Nome do aplicativo de contêiner Insira my-container-app.
    Fonte de implantação Selecione Imagem do contêiner.

Criar um ambiente

Em seguida, crie um ambiente para seu aplicativo de contêiner.

  1. Selecione a região apropriada.

    Configuração Valor
    Região Selecione EUA Central.
  2. No campo Criar ambiente de Aplicativos de Contêiner, selecione o link Criar novo.

  3. Na página Criar Ambiente de Aplicativos de Contêiner, na guia Básico, insira os seguintes valores:

    Configuração Valor
    Nome do ambiente Insira my-environment.
    Tipo de ambiente Selecione Perfis de carga de trabalho.
    Redundância de zona Selecione Desabilitado
  4. Selecione a guia Monitoramento para criar um workspace do Log Analytics.

  5. Selecione Azure Log Analytics como o Destino de Logs.

  6. Selecione o link Criar novo no campo Workspace do Log Analytics e insira os valores a seguir.

    Configuração Valor
    Nome Insira my-container-apps-logs.

    O campo Local é preenchido previamente com EUA Central para você.

  7. Selecione OK.

Observação

Você pode usar uma rede virtual existente, mas é necessária uma sub-rede dedicada com um intervalo de CIDR de /23 ou maior para uso com Aplicativos de Contêiner do Azure ao usar o ambiente somente de consumo. Ao usar o ambiente de perfis de carga de trabalho, é necessário um /27 ou maior. Para saber mais sobre o dimensionamento de sub-rede, consulte a visão geral do ambiente de rede.

  1. Selecione a guia Rede para criar uma VNET.

  2. Selecione Sim ao lado de Usar sua própria rede virtual.

  3. Ao lado da caixa Rede virtual, selecione o link Criar novo e insira o valor a seguir.

    Configuração Valor
    Nome Insira my-custom-vnet.
  4. Selecione o botão OK.

  5. Ao lado da caixa Sub-rede de infraestrutura, selecione o link Criar novo e insira os seguintes valores:

    Configuração Valor
    Nome da sub-rede Insira infrastructure-subnet.
    Bloco de endereço da VNET Mantenha os valores padrão.
    Bloco de endereço da sub-rede Mantenha os valores padrão.
  6. Selecione o botão OK.

  7. Em IP Virtual, selecione Interno.

  8. Selecione Criar.

Implantar o aplicativo de contêiner

  1. Selecione Examinar e criar na parte inferior da página.

    Se nenhum erro for encontrado, o botão Criar será habilitado.

    Se houver erros, qualquer guia que contiver erros será marcada com um ponto vermelho. Navegue até a guia apropriada. Os campos que contêm um erro são realçados em vermelho. Depois que todos os erros forem corrigidos, selecione Revisar e criar novamente.

  2. Selecione Criar.

    Uma página com a mensagem A implantação está em andamento é exibida. Depois que a implantação for concluída com êxito, você verá a mensagem: Sua implantação foi concluída.

Pré-requisitos

Instalação

Para entrar no Azure usando a CLIl, execute o comando a seguir e siga os prompts para concluir o processo de autenticação.

az login

Para garantir que você esteja executando a versão mais recente da CLI, execute o comando “upgrade”.

az upgrade

Em seguida, instale ou atualize a extensão dos Aplicativos de Contêiner do Azure para a CLI.

Se você receber erros sobre parâmetros ausentes ao executar comandos az containerapp na CLI do Azure ou cmdlets do módulo Az.App no Azure PowerShell, verifique se está com a versão mais recente da extensão Aplicativos de Contêiner do Azure instalada.

az extension add --name containerapp --upgrade

Observação

A partir de maio de 2024, as extensões da CLI do Azure já não permitem funcionalidades de versão prévia do recurso por padrão. Para acessar as versões prévias dos recursos dos Aplicativos de Contêiner, instale a extensão Aplicativos de Contêiner com --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Agora que a extensão ou módulo atual está instalado, registre os namespaces Microsoft.App e Microsoft.OperationalInsights.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Definir variáveis de ambiente

Defina as variáveis de ambiente a seguir. Substitua os <espaços reservados> pelos seus valores:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

Criar um grupo de recursos do Azure

Crie um grupo de recursos para organizar os serviços relacionados à implantação do aplicativo de contêiner.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Criar um ambiente

Um ambiente em aplicativos de contêiner do Azure cria um limite seguro em um grupo de aplicativos de contêiner. Os Aplicativos de Contêiner implantados no mesmo ambiente são implantados na mesma rede virtual e gravam logs no mesmo workspace do Log Analytics.

Registre o provedor Microsoft.ContainerService.

az provider register --namespace Microsoft.ContainerService

Declare uma variável para conter o nome da VNET.

VNET_NAME="my-custom-vnet"

Agora, crie uma instância da rede virtual para associar ao ambiente de Aplicativos de Contêiner. A rede virtual deve ter duas sub-redes disponíveis para a instância de aplicativos de contêiner.

Observação

O prefixo do endereço de sub-rede da rede requer um intervalo de CIDR mínimo de /23 para uso com os Aplicativos de Contêiner do Azure ao usar o ambiente somente de consumo. Ao usar um ambiente de perfis de carga de trabalho, é necessário um /27 ou maior. Para saber mais sobre o dimensionamento de sub-rede, consulte a visão geral do ambiente de rede.

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/23

Ao usar o ambiente de perfis de carga de trabalho, você precisará atualizar a VNET para delegar a sub-rede para Microsoft.App/environments. Essa delegação não é aplicável ao ambiente somente de consumo.

az network vnet subnet update \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --delegations Microsoft.App/environments

Com a VNET estabelecida, você pode consultar a ID de sub-rede da infraestrutura.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

Por fim, crie o ambiente de Aplicativos de Contêiner com a VNET e a sub-rede.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET \
  --internal-only

A tabela a seguir descreve os parâmetros usados para containerapp env create.

Parâmetro Descrição
name Nome do ambiente de Aplicativos de Contêiner.
resource-group Nome do grupo de recursos.
logs-workspace-id (Opcional) A ID de um workspace do Log Analytics existente. Se omitido, será criado um workspace para você.
logs-workspace-key O segredo do cliente do Log Analytics. Obrigatório, se estiver usando um workspace existente.
location O local do Azure em que o ambiente deve ser implantado.
infrastructure-subnet-resource-id ID de recurso de uma sub-rede para componentes de infraestrutura e contêineres de aplicativo de usuário.
internal-only (Opcional) O ambiente não usa um IP estático público, apenas endereços IP internos disponíveis na VNET personalizada. (Requer uma ID do recurso da sub-rede de infraestrutura.)

Com o ambiente criado usando a rede virtual personalizada, você pode implantar aplicativos de contêiner no ambiente usando o comando az containerapp create.

Configuração opcional

Você tem a opção de implantar um DNS privado e definir intervalos de IP de rede personalizados para seu ambiente de Aplicativos de Contêiner.

Implantar com um DNS privado

Se você quiser implantar seu aplicativo de contêiner com um DNS privado, execute os comandos a seguir.

Primeiro, extraia informações de identificação do ambiente.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

Em seguida, configure o DNS privado.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

Parâmetros de rede

Há três parâmetros de rede opcionais que você pode optar por definir ao chamar containerapp env create. Use essas opções quando você tiver uma VNET emparelhada com intervalos de endereços separados. Configurar explicitamente esses intervalos garante que os endereços usados pelo ambiente de Aplicativos de Contêiner não entrem em conflito com outros intervalos na infraestrutura de rede.

Você deve fornecer valores para todas as três propriedades ou para nenhuma delas. Se eles não forem fornecidos, os valores serão gerados para você.

Parâmetro Descrição
platform-reserved-cidr O intervalo de endereços usado internamente para serviços de infraestrutura do ambiente. Deve ter um tamanho entre /23 e /12 ao usar o ambiente Somente consumo
platform-reserved-dns-ip Um endereço IP do intervalo platform-reserved-cidr usado para o servidor DNS interno. O endereço não pode ser o primeiro endereço no intervalo nem o endereço da rede. Por exemplo, se platform-reserved-cidr for definido como 10.2.0.0/16, platform-reserved-dns-ip não poderá ser 10.2.0.0 (o endereço da rede) nem 10.2.0.1 (a infraestrutura reserva o uso desse IP). Nesse caso, o primeiro IP utilizável para o DNS seria 10.2.0.2.
docker-bridge-cidr O intervalo de endereços atribuído à rede de ponte do Docker. Esse intervalo deve ter um tamanho entre /28 e /12.
  • Os intervalos de endereços platform-reserved-cidr e docker-bridge-cidr não podem entrar em conflito entre si nem com os intervalos de qualquer sub-rede fornecida. Além disso, esses intervalos não devem entrem em conflito com nenhum outro intervalo de endereços da VNET.

  • Se essas propriedades não forem fornecidas, a CLI gerará automaticamente os valores de intervalo com base no intervalo de endereços da VNET para evitar conflitos de intervalo.

Limpar os recursos

Se você não pretende usar mais esse aplicativo, exclua a instância de Aplicativos de Contêiner do Azure e todos os serviços associados removendo o grupo de recursos my-container-apps. Excluir esse grupo de recursos remove o grupo de recursos criado automaticamente pelo serviço Aplicativos de Contêiner que contém os componentes de rede personalizados.

Cuidado

O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste guia no grupo de recursos especificado, eles também serão excluídos.

az group delete --name $RESOURCE_GROUP

Recursos adicionais

  • Para usar a entrada no escopo da VNET, você deve configurar o DNS.

Próximas etapas