Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com os clusters do Kubernetes habilitados para Azure Arc, você pode criar um Local personalizado habilitado para Aplicativos de Contêiner em seu cluster do Kubernetes local ou na nuvem para implantar seus aplicativos de Aplicativos de Contêiner do Azure como faria com qualquer outra região.
Este tutorial mostra como habilitar os Aplicativos de Contêiner do Azure em um cluster do Kubernetes habilitado para Azure Arc. Neste tutorial, você:
- Crie um cluster conectado.
- Criar um espaço de trabalho do Log Analytics.
- Instale a extensão Aplicativos de Contêiner.
- Crie um local personalizado.
- Crie o ambiente conectado dos Aplicativos de Contêiner do Azure.
Pré-requisitos
Antes de começar, certifique-se de que você tem os seguintes pré-requisitos necessários:
- Uma conta do Azure com uma assinatura ativa.
- Se não tiver uma, poderá criar uma gratuitamente.
- Instale a CLI do Azure.
- Acesso a um registro de contêiner público ou privado, como o Registro de Contêiner do Azure.
Instalação
Instale as seguintes extensões da CLI do Azure.
az extension add --name connectedk8s --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
az extension add --name customlocation --upgrade --yes
az extension add --name containerapp --upgrade --yes
Registre os namespaces necessários.
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az provider register --namespace Microsoft.App --wait
az provider register --namespace Microsoft.OperationalInsights --wait
Defina variáveis de ambiente com base na implantação do cluster do Kubernetes.
GROUP_NAME="my-arc-cluster-group"
AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group"
AKS_NAME="my-aks-cluster"
LOCATION="eastus"
Criar um cluster conectado
Essas instruções servem para fins de avaliação e aprendizado. Para implantações de produção, consulte o Início Rápido: conectar um cluster kubernetes existente ao Azure Arc para obter instruções gerais sobre como criar um cluster kubernetes habilitado para Azure Arc.
Para começar a usar o serviço, siga estas etapas para criar um cluster do AKS (Serviço de Kubernetes do Azure) e conectá-lo ao Azure Arc:
Crie um cluster no Serviço de Kubernetes do Azure.
az group create --name $AKS_CLUSTER_GROUP_NAME --location $LOCATION az aks create \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --enable-aad \ --generate-ssh-keysObtenha o arquivo kubeconfig e teste sua conexão com o cluster. Por padrão, o arquivo kubeconfig é salvo em
~/.kube/config.az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get nsCrie um grupo de recursos para conter os recursos do Azure Arc.
az group create --name $GROUP_NAME --location $LOCATIONConecte o cluster criado ao Azure Arc.
CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAMEValide a conexão com o comando a seguir. Ela mostrará a propriedade
provisioningStatecomoSucceeded. Caso contrário, execute o comando novamente após um minuto.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
Criar um espaço de trabalho do Log Analytics
Um workspace do Log Analytics fornece acesso a logs para aplicativos de Aplicativos de Contêiner em execução no cluster do Kubernetes habilitado para Azure Arc. Um workspace do Log Analytics é opcional, mas recomendado.
Criar um espaço de trabalho do Log Analytics.
WORKSPACE_NAME="$GROUP_NAME-workspace" # Name of the Log Analytics workspace az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAMEExecute os comandos a seguir para obter a ID e a chave compartilhada codificadas de um workspace existente do Log Analytics. Você precisará deles na próxima etapa.
LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query customerId \ --output tsv) LOG_ANALYTICS_WORKSPACE_ID_ENC=$(printf %s $LOG_ANALYTICS_WORKSPACE_ID | base64 -w0) # Needed for the next step LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query primarySharedKey \ --output tsv) LOG_ANALYTICS_KEY_ENC=$(printf %s $LOG_ANALYTICS_KEY | base64 -w0) # Needed for the next step
Instalar a extensão Aplicativos de Contêiner
Importante
Se estiver implantando no AKS no Azure Local, verifique se você configurou o HAProxy ou um balanceador de carga personalizado antes de tentar instalar a extensão. Você também pode usar az containerapp arc setup-core-dns --distro AksAzureLocal para configurar dns principais para contextos locais.
Defina as variáveis de ambiente a seguir para o nome desejado da extensão dos Aplicativos de Contêiner, o namespace do cluster no qual os recursos devem ser provisionados e o nome do ambiente conectado de Aplicativos de Contêiner do Azure. Use um nome exclusivo para
<connected-environment-name>. O nome do ambiente conectado faz parte do nome de domínio do aplicativo que você cria no ambiente conectado dos Aplicativos de Contêiner do Azure.EXTENSION_NAME="appenv-ext" NAMESPACE="appplat-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"Instale a extensão do Aplicativos de Contêiner no cluster conectado ao Azure Arc, com o Log Analytics habilitado. O Log Analytics não pode ser adicionado à extensão mais tarde.
az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --extension-type 'Microsoft.App.Environment' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace $NAMESPACE \ --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ --configuration-settings "appsNamespace=${NAMESPACE}" \ --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"Observação
Para instalar a extensão sem a integração do Log Analytics, remova os três últimos parâmetros
--configuration-settingsdo comando.Para clusters que usam um balanceador de carga personalizado em vez do balanceador de carga padrão do AKS, depois que o balanceador de carga é configurado, especifique o seguinte parâmetro:
--configuration-settings "loadBalancerIp=<LOAD_BALANCER_INGRESS_IP>"Substitua <LOAD_BALANCER_INGRESS_IP> pelo endereço IP de entrada real atribuído ao balanceador de carga.
A seguinte tabela descreve os vários parâmetros
--configuration-settingsdurante a execução do comando:Parâmetro Descrição Microsoft.CustomLocation.ServiceAccountA conta de serviço criada para o local personalizado. Defina o valor como default.appsNamespaceO namespace usado para criar as definições e revisões do aplicativo. Precisa corresponder àquele do namespace de versão da extensão. clusterNameO nome do ambiente kubernetes de extensão de Aplicativos de Contêiner criado em relação a essa extensão. logProcessor.appLogs.destinationOpcional. Destino para logs de aplicativo. Aceita log-analyticsounone, escolher nenhum desabilita os logs da plataforma.logProcessor.appLogs.logAnalyticsConfig.customerIdObrigatório somente quando logProcessor.appLogs.destinationestiver definido comolog-analytics. A ID do workspace do Log Analytics codificada em base64. Esse parâmetro deve ser definido como uma configuração protegida.logProcessor.appLogs.logAnalyticsConfig.sharedKeyObrigatório somente quando logProcessor.appLogs.destinationestiver definido comolog-analytics. A chave compartilhada do workspace do Log Analytics codificada em base64. Esse parâmetro deve ser definido como uma configuração protegida.loadBalancerIpO IP de entrada do balanceador de carga. Salve a propriedade
idda extensão dos Aplicativos de Contêiner para mais tarde.EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)Aguarde até que a extensão seja instalada por completo antes de continuar. Você pode fazer com que a sessão de terminal aguarde a conclusão executando o seguinte comando:
az resource wait --ids $EXTENSION_ID --custom "properties.provisioningState!='Pending'" --api-version "2020-07-01-preview"
Use kubectl para exibir os pods em execução no cluster do Kubernetes:
kubectl get pods -n $NAMESPACE
Para saber mais sobre esses pods e sua função no sistema, confira Visão geral do Azure Arc.
Criar uma localização personalizada
O local personalizado é um local do Azure que você atribui ao ambiente conectado dos Aplicativos de Contêiner do Azure.
Defina as variáveis de ambiente a seguir para o nome desejado da localização personalizada e para a ID do cluster conectado do Azure Arc.
CUSTOM_LOCATION_NAME="my-custom-location" # Name of the custom location CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME --query id --output tsv)Crie a localização personalizada:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_IDObservação
Se você tiver problemas ao criar um local personalizado no cluster, talvez seja necessário habilitar o recurso de localização personalizada no cluster. Habilite esse recurso quando conectado à CLI usando uma Entidade de Serviço ou um usuário do Microsoft Entra com permissões restritas no recurso de cluster.
Valide se a localização personalizada foi criada com êxito com o comando a seguir. A saída deverá mostrar a propriedade
provisioningStatecomoSucceeded. Caso contrário, execute novamente o comando após um minuto.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAMESalve a ID de localização personalizada para a próxima etapa.
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Criar o ambiente conectado dos Aplicativos de Contêiner do Azure
Antes de começar a criar aplicativos no local personalizado, você precisa de um ambiente conectado dos Aplicativos de Contêiner do Azure.
Crie o ambiente conectado dos Aplicativos de Contêiner:
az containerapp connected-env create \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_ID \ --location $LOCATIONValide se o ambiente conectado dos Aplicativos de Contêiner foi criado com êxito com o comando a seguir. A saída deverá mostrar a propriedade
provisioningStatecomoSucceeded. Caso contrário, execute-a novamente após um minuto.az containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME