Ligue um serviço Azure Kubernetes no cluster HCI da Azure Stack ao Azure Arc para KubernetesConnect an Azure Kubernetes Service on Azure Stack HCI cluster to Azure Arc for Kubernetes

Quando um serviço Azure Kubernetes no cluster HCI da Pilha de Azure estiver ligado ao Arco Azure, aparecerá no portal Azure.When an Azure Kubernetes Service on Azure Stack HCI cluster is attached to Azure Arc, it will appear in the Azure portal. Terá um ID do Azure Resource Manager e uma identidade gerida.It will have an Azure Resource Manager ID and a managed identity. Os clusters estão ligados às subscrições padrão do Azure, estão localizados num grupo de recursos, e podem receber tags como qualquer outro recurso Azure.Clusters are attached to standard Azure subscriptions, are located in a resource group, and can receive tags just like any other Azure resource.

Para ligar um cluster Kubernetes ao Azure, o administrador do cluster precisa de enviar agentes.To connect a Kubernetes cluster to Azure, the cluster administrator needs to deploy agents. Estes agentes funcionam num espaço de nome Kubernetes chamado azure-arc e são implementações padrão de Kubernetes.These agents run in a Kubernetes namespace named azure-arc and are standard Kubernetes deployments. Os agentes são responsáveis pela conectividade com o Azure, recolhendo registos e métricas do Arco Azure e observando pedidos de configuração.The agents are responsible for connectivity to Azure, collecting Azure Arc logs and metrics, and watching for configuration requests.

A Azure Arc permitiu que a Kubernetes suporta sSL padrão da indústria para proteger dados em trânsito.Azure Arc enabled Kubernetes supports industry-standard SSL to secure data in transit. Além disso, os dados são armazenados encriptados em repouso numa base de dados DB Azure Cosmos para garantir a confidencialidade dos dados.Also, data is stored encrypted at rest in an Azure Cosmos DB database to ensure data confidentiality.

Os passos seguintes proporcionam uma passagem de passagem no serviço Azure Kubernetes em aglomerados HCI Azure Stack para Azure Arc. Pode saltar estes passos se já ter acedido o seu cluster Kubernetes para Azure Arc através do Windows Admin Center.The following steps provide a walkthrough on onboarding Azure Kubernetes Service on Azure Stack HCI clusters to Azure Arc. You may skip these steps if you've already onboarded your Kubernetes cluster to Azure Arc through Windows Admin Center.

Before you beginBefore you begin

Verifique se tem os seguintes requisitos prontos:Verify you've the following requirements ready:

  • Um serviço Azure Kubernetes no cluster HCI Azure Stack HCI com pelo menos um nó de trabalhador linux que está em funcionamento.An Azure Kubernetes Service on Azure Stack HCI cluster with at least one Linux worker node that is up and running.

  • Você precisará de um ficheiro kubeconfig para aceder ao cluster e papel de administração de cluster no cluster para implantação de agentes Kubernetes habilitados pela Arc.You'll need a kubeconfig file to access the cluster and cluster-admin role on the cluster for deployment of Arc enabled Kubernetes agents.

  • Instale o serviço Azure Kubernetes no módulo Azure Stack HCI PowerShell.Have the Azure Kubernetes Service on Azure Stack HCI PowerShell module installed.

  • A versão 2.3+ do Azure CLI é necessária para instalar as extensões CLI ativadas pelo Arco Azure.Azure CLI version 2.3+ is required for installing the Azure Arc enabled Kubernetes CLI extensions. Instalar a CLI do Azure.Install Azure CLI. Também pode atualizar para a versão mais recente para garantir que tem a versão Azure CLI 2.3+.You can also update to the latest version to ensure that you have Azure CLI version 2.3+.

  • Uma subscrição da Azure na qual é proprietário ou colaborador.An Azure subscription on which you're an owner or contributor.

  • Executar os comandos neste documento numa janela administrativa powerShell.Run the commands in this document in a PowerShell administrative window.

Requisitos de redeNetwork requirements

Os agentes da Azure Arc exigem que os seguintes protocolos/portas/URLs de saída funcionem.Azure Arc agents require the following protocols/ports/outbound URLs to function.

  • TCP no porto 443 -- > https://:443TCP on port 443 --> https://:443
  • TCP no porto 9418 -- > git://:9418TCP on port 9418 --> git://:9418
Ponto final (DNS)Endpoint (DNS) DescriptionDescription
https://management.azure.com Necessário para que o agente se conecte ao Azure e registe o clusterRequired for the agent to connect to Azure and register the cluster
https://eastus.dp.kubernetesconfiguration.azure.com, https://westeurope.dp.kubernetesconfiguration.azure.comhttps://eastus.dp.kubernetesconfiguration.azure.com, https://westeurope.dp.kubernetesconfiguration.azure.com Ponto final do plano de dados para o agente empurrar o estado e obter informações de configuraçãoData plane endpoint for the agent to push status and fetch configuration information
https://docker.io Obrigado a puxar imagens de contentoresRequired to pull container images
https://github.comgit://github.comhttps://github.com, git://github.com Exemplo GitOps repos estão hospedados no GitHub.Example GitOps repos are hosted on GitHub. O agente de configuração requer conectividade com qualquer ponto final que especifique.Configuration agent requires connectivity to whichever git endpoint you specify.
https://login.microsoftonline.com Necessário para buscar e atualizar fichas do Gestor de Recursos AzureRequired to fetch and update Azure Resource Manager tokens
https://azurearcfork8s.azurecr.io Obrigado a retirar imagens de contentores para agentes do Azure ArcRequired to pull container images for Azure Arc agents
https://eus.his.arc.azure.com, https://weu.his.arc.azure.comhttps://eus.his.arc.azure.com, https://weu.his.arc.azure.com Obrigado a retirar certificados de identidade geridos atribuídos pelo sistemaRequired to pull system-assigned managed identity certificates

Passo 1: Iniciar sessão em AzureStep 1: Log in to Azure

Faça login no Azure e depois de iniciar sessão, desconfiem de uma subscrição Azure na qual é proprietário ou colaborador como subscrição padrão.Log in to Azure and after logging in, set an Azure subscription on which you're an owner or contributor as your default subscription.

az login
az account set --subscription "00000000-aaaa-bbbb-cccc-000000000000"

Passo 2: Registar os dois fornecedores da Azure Arc habilitado a Kubernetes:Step 2: Register the two providers for Azure Arc enabled Kubernetes:

Pode saltar este passo se já registou os dois fornecedores do serviço Azure Arc habilitado para o serviço Kubernetes na sua subscrição.You can skip this step if you've already registered the two providers for Azure Arc enabled Kubernetes service on your subscription. O registo é um processo assíncronos e precisa de ser uma vez por subscrição.Registration is an asynchronous process and needs to be once per subscription. A inscrição pode demorar aproximadamente 10 minutos.Registration may take approximately 10 minutes.

az provider register --namespace Microsoft.Kubernetes
az provider register --namespace Microsoft.KubernetesConfiguration

Pode verificar se está registado com os seguintes comandos:You can check if you're registered with the following commands:

az provider show -n Microsoft.Kubernetes -o table
az provider show -n Microsoft.KubernetesConfiguration -o table

Passo 3: Criar um grupo de recursosStep 3: Create a resource group

Precisa de um grupo de recursos para reter o recurso de cluster ligado.You need a resource group to hold the connected cluster resource. Você pode usar um grupo de recursos existente em locais do Leste dos EUA ou da Europa Ocidental.You can use an existing resource group in East US or West Europe locations. Se não tiver um grupo de recursos existente na localização dos EUA ou da Europa Ocidental, utilize o seguinte comando para criar um novo grupo de recursos:If you do not have an existing resource group in the East US or West Europe location, use the following command to create a new resource group:

az group create --name AzureArcTest -l EastUS -o table

Passo 4: Criar um novo diretor de serviçoStep 4: Create a new service principal

Você pode saltar este passo se você já criou um diretor de serviço com contributor papel e conhecer os valores appID, senha e inquilino do diretor de serviço.You can skip this step if you've already created a service principal with contributor role and know the service principal's appID, password, and tenant values.

Criar um novo diretor de serviço com um nome informativo.Create a new service principal with an informative name. Este nome deve ser exclusivo do seu inquilino Azure Ative Directory.This name must be unique for your Azure Active Directory tenant. A função predefinida para um principal de serviço é Contributor .The default role for a service principal is Contributor. Esta função tem permissões completas para ler e escrever numa conta do Azure.This role has full permissions to read and write to an Azure account. Também pode reutilizar este principal de serviço para vários clusters a bordo para Azure Arc. Desaprote o âmbito do seu serviço principal para subscrições/grupo de recursos.You can also reuse this service principal to on-board multiple clusters to Azure Arc. Set the scope of your service principal to subscriptions/resource-group. Certifique-se de que guarda os valores de appID, password e inquilino do diretor de serviço, uma vez que necessitará destes detalhes nos passos seguintes.Make sure you save the service principal's appID, password, and tenant values as you will need these details in subsequent steps.

az ad sp create-for-RBAC --name "azure-arc-for-k8s" --scope /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}

Saída:Output:

{
  "appId": "00000000-0000-0000-0000-000000000000",
  "displayName": "azure-arc-for-k8s",
  "name": "https://azure-arc-for-k8s",
  "password": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "tenant": "ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj"
}

Passo 5: Guardar detalhes principais do serviçoStep 5: Save service principal details

Guarde o appId do chefe de serviço criado, os valores de senha e inquilino e o nome do cluster, ID de subscrição Azure, nome do grupo de recursos e localização nas variáveis PowerShell.Save the created service principal's appId, password and tenant values and cluster name, Azure subscription ID, resource group name and location in PowerShell variables. Isto irá garantir que você pode reutilizar os detalhes em outros tutoriais.This will ensure you can reuse the details in other tutorials. Certifique-se de que também guarda estes valores num bloco de notas caso pretenda fechar a sessão powerShell.Ensure that you also save these values in a notepad in case you want to close your powerShell session.

$clusterName = #<name of your Kubernetes cluster>
$resourceGroup = #<Azure resource group to store your connected Kubernetes cluster in Azure Arc>
$location = #<Azure resource group location. This can only be eastus or westeurope for Azure Arc for Kubernetes>
$subscriptionId = #<Azure subscription Id>
$appId = #<appID from the service principal created above>
$password = #<password from the service principal created above>
$tenant = #<tenant from the service principal created above>

Certifique-se de que atribuiu os valores certos às variáveis executando:Ensure that you have assigned the right values to the variables by running:

echo $clusterName 
echo $resourceGroup
echo $location 
echo $subscriptionId 
echo $appId 
echo $password 
echo $tenant 

Passo 6: Conecte-se ao Arco Azure utilizando o principal de serviço e o módulo Aks-Hci PowerShellStep 6: Connect to Azure Arc using service principal and the Aks-Hci PowerShell module

Em seguida, ligaremos o nosso cluster Kubernetes ao Azure usando o principal de serviço e o módulo Aks-Hci PowerShell.Next, we will connect our Kubernetes cluster to Azure using service principal and the Aks-Hci PowerShell module. Este passo coloca agentes Azure Arc para Kubernetes no espaço de azure-arc nomes.This step deploys Azure Arc agents for Kubernetes into the azure-arc namespace.

Consulte o novo chefe de serviço e execute o Install-AksHciArcOnboarding comando disponível no módulo Aks-Hci PowerShell.Reference the newly created service principal and run the Install-AksHciArcOnboarding command available in the Aks-Hci PowerShell module.

Install-AksHciArcOnboarding -clusterName $clusterName -resourcegroup $resourceGroup -location $location -subscriptionid $subscriptionId -clientid $appId -clientsecret $password -tenantid $tenant

Verifique o cluster conectadoVerify connected cluster

Pode ver o seu recurso de cluster Kubernetes no portal Azure.You can view your Kubernetes cluster resource on the Azure portal. Assim que tiver o portal aberto no seu navegador, navegue para o grupo de recursos e o Arco Azure ativou o recurso Kubernetes com base no nome de recursos e entradas de nome de grupo de recursos usadas anteriormente no Install-AksHciArcOnboarding comando PowerShell.Once you've the portal open in your browser, navigate to the resource group and the Azure Arc enabled Kubernetes resource based on the resource name and resource group name inputs used earlier in the Install-AksHciArcOnboarding PowerShell command.

Nota

Depois de embarcar no cluster, leva cerca de 5 a 10 minutos para que os metadados do cluster (versão cluster, versão do agente, número de nós) surjam na página geral do Arco Azure habilitado o recurso Kubernetes no portal Azure.After onboarding the cluster, it takes around 5 to 10 minutes for the cluster metadata (cluster version, agent version, number of nodes) to surface on the overview page of the Azure Arc enabled Kubernetes resource in Azure portal.

Para eliminar o seu cluster ou para ligar o seu cluster se estiver por trás de um servidor de procuração de saída, visite Connect um cluster Kubernetes ativado pelo Arco Azure.To delete your cluster, or to connect your cluster if it is behind an outbound proxy server, visit Connect an Azure Arc-enabled Kubernetes cluster.

Agentes do Azure Arc para KubernetesAzure Arc agents for Kubernetes

Azure Arc habilitado a Kubernetes implanta alguns operadores no azure-arc espaço de nomes.Azure Arc enabled Kubernetes deploys a few operators into the azure-arc namespace. Pode ver estas implementações e cápsulas aqui:You can view these deployments and pods here:

kubectl -n azure-arc get deployments,pods

Azure Arc habilitado Kubernetes é composto por alguns agentes (operadores) que funcionam no seu cluster implantados no azure-arc espaço de nome.Azure Arc enabled Kubernetes consists of a few agents (operators) that run in your cluster deployed to the azure-arc namespace.

  • deployment.apps/config-agent: observa o cluster ligado para os recursos de configuração do controlo de origem aplicados no cluster e atualiza o estado de conformidadedeployment.apps/config-agent: watches the connected cluster for source control configuration resources applied on the cluster and updates compliance state
  • deployment.apps/controller-manager: é um operador de operadores e orquestra interações entre componentes do Arco Azuredeployment.apps/controller-manager: is an operator of operators and orchestrates interactions between Azure Arc components
  • deployment.apps/metrics-agent: recolhe métricas de outros agentes da Arc para garantir que estes agentes exibem um desempenho ótimodeployment.apps/metrics-agent: collects metrics of other Arc agents to ensure that these agents are exhibiting optimal performance
  • deployment.apps/cluster-metadata-operator: recolhe metadados de cluster - versão de cluster, contagem de nós e versão agente Azure Arcdeployment.apps/cluster-metadata-operator: gathers cluster metadata - cluster version, node count, and Azure Arc agent version
  • deployment.apps/resource-sync-agent: sincroniza os metadados de cluster acima mencionados para Azuredeployment.apps/resource-sync-agent: syncs the above mentioned cluster metadata to Azure
  • deployment.apps/clusteridentityoperator: Azure Arc habilitado kubernetes atualmente suporta a identidade atribuída ao sistema.deployment.apps/clusteridentityoperator: Azure Arc enabled Kubernetes currently supports system assigned identity. ClusteridentityOperator mantém o certificado de identidade de serviço gerido (MSI) usado por outros agentes para comunicação com a Azure.clusteridentityoperator maintains the managed service identity (MSI) certificate used by other agents for communication with Azure.
  • deployment.apps/flux-logs-agent: recolhe registos dos operadores de fluxo implantados como parte da configuração do controlo de fontesdeployment.apps/flux-logs-agent: collects logs from the flux operators deployed as a part of source control configuration

Passos seguintesNext steps