Ligar um cluster de Azure Kubernetes Service ao Azure Arc

Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server

Quando um cluster de Azure Kubernetes Service (AKS) é anexado ao Azure Arc, obtém uma representação do Azure Resource Manager. Os clusters estão anexados a subscrições padrão do Azure, estão localizados num grupo de recursos e podem receber etiquetas como qualquer outro recurso do Azure. Além disso, a representação do Kubernetes permite-lhe expandir as seguintes capacidades para o cluster do Kubernetes:

  • Serviços de gestão: configurações (GitOps), Azure Monitor para contentores, Azure Policy (Gatekeeper).
  • Serviços de dados: SQL Managed Instance, PostgreSQL Hyperscale.
  • Serviços aplicacionais: Serviço de Aplicações, Funções, Event Grid, Logic Apps, Gestão de API.

Para ligar um cluster do Kubernetes ao Azure, o administrador do cluster tem de implementar agentes. Estes agentes são executados num espaço de nomes do Kubernetes com o nome azure-arc e são implementações padrão do Kubernetes. Os agentes são responsáveis pela conectividade ao Azure, pela recolha de registos e métricas do Azure Arc e pela ativação dos cenários mencionados anteriormente no cluster.

O AKS suporta o SSL padrão da indústria para proteger os dados em trânsito. Além disso, os dados são armazenados encriptados inativos numa base de dados do Azure Cosmos DB para garantir a confidencialidade dos dados.

Os passos seguintes descrevem como ligar clusters do AKS ao Azure Arc no AKS ativado pelo Arc. Pode ignorar estes passos se já tiver ligado o cluster do Kubernetes ao Azure Arc com Windows Admin Center.

Antes de começar

Verifique se tem os seguintes requisitos:

  • Um cluster do AKS com, pelo menos, um nó de trabalho do Linux em execução.
  • Instale o módulo do AksHci PowerShell.
  • O seguinte nível de acesso na sua subscrição do Azure:
    • Uma conta de utilizador com a função de Proprietário incorporada. Pode verificar o nível de acesso ao navegar para a sua subscrição, selecionar "Controlo de acesso (IAM)" no lado esquerdo do portal do Azure e, em seguida, clicar em Ver o meu acesso.
    • Um principal de serviço com a função de Proprietário incorporada.
  • Execute os comandos neste artigo numa janela administrativa do PowerShell.
  • Certifique-se de que cumpriu os requisitos de rede do AKS.

Passo 1: Iniciar sessão no Azure

Para iniciar sessão no Azure, execute o comando Connect-AzAccount powerShell:

Connect-AzAccount $tenantId

Se quiser mudar para uma subscrição diferente, execute o comando Set-AzContext powerShell:

Set-AzContext -Subscription $subscriptionId

Passo 2: registar os dois fornecedores do AKS

Pode ignorar este passo se já tiver registado os dois fornecedores do AKS na sua subscrição. O registo é um processo assíncrono e tem de ocorrer uma vez por subscrição. O registo pode demorar aproximadamente 10 minutos:

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Pode verificar se está registado com os seguintes comandos:

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Passo 3: Ligar ao Azure Arc com o módulo Aks-Hci PowerShell

Ligue o cluster do AKS ao Kubernetes com o comando Enable-AksHciArcConnection powerShell. Este passo implementa agentes do Azure Arc para Kubernetes no azure-arc espaço de nomes:

Enable-AksHciArcConnection -name $clusterName 

Ligar o cluster do AKS ao Azure Arc com um principal de serviço

Se não tiver acesso a uma subscrição na qual é um "Proprietário", pode ligar o cluster do AKS ao Azure Arc através de um principal de serviço.

O primeiro comando pede credenciais do principal de serviço e armazena-as na credential variável. Introduza o ID da aplicação para o nome de utilizador e, em seguida, utilize o segredo do principal de serviço como palavra-passe quando lhe for pedido. Certifique-se de que obtém estes valores junto do administrador da subscrição. O segundo comando liga o cluster ao Azure Arc com as credenciais do principal de serviço armazenadas na credential variável:

$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location

Certifique-se de que o principal de serviço utilizado no comando acima tem a função "Proprietário" atribuída e que tem âmbito sobre o ID da subscrição utilizado no comando. Para obter mais informações sobre principais de serviço, veja Criar um principal de serviço com Azure PowerShell.

Ligar o cluster do AKS ao Azure Arc e ativar localizações personalizadas

Se quiser ativar localizações personalizadas no cluster juntamente com o Azure Arc, execute o seguinte comando para obter o ID de objeto da aplicação de localização personalizada e, em seguida, ligue-se ao Azure Arc com um principal de serviço:

$objectID = (Get-AzADServicePrincipal -ApplicationId "bc313c14-388c-4e7d-a58e-70017303ee3b").Id
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location -customLocationsOid $objectID

Verificar o cluster ligado

Pode ver o recurso do cluster do Kubernetes no portal do Azure. Depois de abrir o portal no browser, navegue para o grupo de recursos e para o recurso do AKS que se baseia no nome do recurso e nas entradas de nome do grupo de recursos utilizadas no comando enable-akshciarcconnection do PowerShell.

Nota

Depois de ligar o cluster, pode demorar cerca de cinco a dez minutos para que os metadados do cluster (versão do cluster, versão do agente, número de nós) possam surgir na página de descrição geral do recurso do AKS no portal do Azure.

Agentes do Azure Arc para Kubernetes

O AKS implementa alguns operadores no azure-arc espaço de nomes. Pode ver estas implementações e pods com kubectl, conforme mostrado no exemplo seguinte:

kubectl -n azure-arc get deployments,pods

O AKS consiste em alguns agentes (operadores) que são executados no cluster implementado no azure-arc espaço de nomes. Para obter mais informações sobre estes agentes, veja esta descrição geral.

Desligar o cluster do AKS do Azure Arc

Se quiser desligar o cluster do AKS, execute o comando Disable-AksHciArcConnection PowerShell. Certifique-se de que inicia sessão no Azure antes de executar o comando:

Disable-AksHciArcConnection -Name $clusterName

Passos seguintes