Conectar um serviço kubernetes do Azure em Azure Stack cluster do HCI ao Azure ARC para kubernetesConnect an Azure Kubernetes Service on Azure Stack HCI cluster to Azure Arc for Kubernetes

Quando um serviço kubernetes do Azure em Azure Stack cluster HCI é anexado ao arco do Azure, ele aparecerá na portal do Azure.When an Azure Kubernetes Service on Azure Stack HCI cluster is attached to Azure Arc, it will appear in the Azure portal. Ele terá uma ID do Azure Resource Manager e uma identidade gerenciada.It will have an Azure Resource Manager ID and a managed identity. Os clusters são anexados a assinaturas do Azure padrão, estão localizados em um grupo de recursos e podem receber marcas, assim como qualquer outro recurso do 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 conectar um cluster do Kubernetes ao Azure, o administrador do cluster precisa implantar agentes.To connect a Kubernetes cluster to Azure, the cluster administrator needs to deploy agents. Esses agentes são executados em um namespace do Kubernetes chamado azure-arc e são implantações padrão do 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, coletando métricas e logs do Azure Arc e inspecionando as solicitações de configuração.The agents are responsible for connectivity to Azure, collecting Azure Arc logs and metrics, and watching for configuration requests.

O Kubernetes habilitado para o Azure Arc dá suporte ao SSL padrão do setor 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 criptografados quando em repouso em um banco de dados Azure Cosmos DB para garantir a confidencialidade dos dados.Also, data is stored encrypted at rest in an Azure Cosmos DB database to ensure data confidentiality.

As etapas a seguir fornecem uma explicação sobre a integração do serviço kubernetes do Azure em clusters de HCI Azure Stack ao arco do Azure. Você poderá ignorar essas etapas se já tiver integrado o cluster kubernetes ao Azure Arc por meio do centro de administração do Windows.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.

Antes de começarBefore you begin

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

  • Um serviço kubernetes do Azure em Azure Stack cluster HCI com pelo menos um nó de trabalho do Linux em execução.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 arquivo kubeconfig para acessar o cluster e a função de administrador de cluster no cluster para a implantação de agentes kubernetes habilitados para 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.

  • Tenha o serviço kubernetes do Azure em Azure Stack módulo do PowerShell do HCI instalado.Have the Azure Kubernetes Service on Azure Stack HCI PowerShell module installed.

  • CLI do Azure versão 2.3 + é necessária para instalar as extensões da CLI do kubernetes habilitadas para o Arc do Azure.Azure CLI version 2.3+ is required for installing the Azure Arc enabled Kubernetes CLI extensions. Instale o CLI do Azure.Install Azure CLI. Você também pode atualizar para a versão mais recente para garantir que você tenha CLI do Azure versão 2.3 +.You can also update to the latest version to ensure that you have Azure CLI version 2.3+.

  • Uma assinatura do Azure na qual você é um proprietário ou colaborador.An Azure subscription on which you're an owner or contributor.

  • Execute os comandos deste documento em uma janela administrativa do PowerShell.Run the commands in this document in a PowerShell administrative window.

Requisitos de redeNetwork requirements

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

  • TCP na porta 443--> https://:443TCP on port 443 --> https://:443
  • TCP na porta 9418--> git://:9418TCP on port 9418 --> git://:9418
Ponto de extremidade (DNS)Endpoint (DNS) DescriçãoDescription
https://management.azure.com Necessário para que o agente se conecte ao Azure e registre 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 de extremidade do plano de dados para o agente enviar o status por push e obter informações de configuraçãoData plane endpoint for the agent to push status and fetch configuration information
https://docker.io Necessário para efetuar pull de imagens de contêinerRequired to pull container images
https://github.com, git://github.comhttps://github.com, git://github.com Os exemplos de repositórios GitOps estão hospedados no GitHub.Example GitOps repos are hosted on GitHub. O agente de configuração requer conectividade com qualquer ponto de extremidade git especificado.Configuration agent requires connectivity to whichever git endpoint you specify.
https://login.microsoftonline.com Necessário para obter e atualizar tokens do Azure Resource ManagerRequired to fetch and update Azure Resource Manager tokens
https://azurearcfork8s.azurecr.io Necessário para efetuar pull de imagens de contêiner 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 Necessário para efetuar pull de certificados de identidade gerenciados atribuídos pelo sistemaRequired to pull system-assigned managed identity certificates

Etapa 1: fazer logon no AzureStep 1: Log in to Azure

Faça logon no Azure e, depois de fazer logon, defina uma assinatura do Azure na qual você seja proprietário ou colaborador como sua assinatura 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"

Etapa 2: registrar os dois provedores de kubernetes habilitados para o Azure Arc:Step 2: Register the two providers for Azure Arc enabled Kubernetes:

Você pode ignorar esta etapa se já tiver registrado os dois provedores para o serviço kubernetes habilitado para Arc do Azure em sua assinatura.You can skip this step if you've already registered the two providers for Azure Arc enabled Kubernetes service on your subscription. O registro é um processo assíncrono e precisa ser uma vez por assinatura.Registration is an asynchronous process and needs to be once per subscription. Ele pode levar aproximadamente 10 minutos.Registration may take approximately 10 minutes.

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

Você pode verificar se está registrado 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

Etapa 3: criar um grupo de recursosStep 3: Create a resource group

Você precisa de um grupo de recursos para manter o recurso de cluster conectado.You need a resource group to hold the connected cluster resource. Você pode usar um grupo de recursos existente no leste dos EUA ou Europa Ocidental locais.You can use an existing resource group in East US or West Europe locations. Se você não tiver um grupo de recursos existente no local leste dos EUA ou Europa Ocidental, use 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

Etapa 4: criar uma nova entidade de serviçoStep 4: Create a new service principal

Você pode ignorar esta etapa se já tiver criado uma entidade de serviço com contributor função e conhecer os valores de AppID, senha e locatário da entidade 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.

Crie uma nova entidade de serviço com um nome informativo.Create a new service principal with an informative name. Esse nome deve ser exclusivo para seu locatário de Azure Active Directory.This name must be unique for your Azure Active Directory tenant. A função padrão para uma entidade de serviço é Contributor .The default role for a service principal is Contributor. Essa função tem permissões completas para ler e gravar em uma conta do Azure.This role has full permissions to read and write to an Azure account. Você também pode reutilizar essa entidade de serviço para vários clusters integrados ao Azure Arc. Defina o escopo da entidade de serviço como assinaturas/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 salvar os valores de appID, senha e locatário da entidade de serviço, pois você precisará desses detalhes nas etapas subsequentes.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"
}

Etapa 5: salvar detalhes da entidade de serviçoStep 5: Save service principal details

Salve a appId, a senha e os valores de locatário e o nome do cluster da entidade de serviço criada, a ID de assinatura do Azure, o nome do grupo de recursos e o local nas variáveis do 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. Isso garantirá que você possa reutilizar os detalhes em outros tutoriais.This will ensure you can reuse the details in other tutorials. Verifique se você também salvou esses valores em um bloco de notas caso queira fechar a sessão do 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>

Verifique se você atribuiu os valores corretos à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 

Etapa 6: conectar-se ao arco do Azure usando a entidade de serviço e o módulo do PowerShell AKs-HCIStep 6: Connect to Azure Arc using service principal and the Aks-Hci PowerShell module

Em seguida, conectaremos nosso cluster kubernetes ao Azure usando a entidade de serviço e o módulo do PowerShell AKs-HCI.Next, we will connect our Kubernetes cluster to Azure using service principal and the Aks-Hci PowerShell module. Esta etapa implanta agentes Arc do Azure para kubernetes no azure-arc namespace.This step deploys Azure Arc agents for Kubernetes into the azure-arc namespace.

Referencie a entidade de serviço recém-criada e execute o Install-AksHciArcOnboarding comando disponível no módulo AKs-HCI do 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

Você pode exibir o recurso de cluster kubernetes no portal do Azure.You can view your Kubernetes cluster resource on the Azure portal. Depois de abrir o portal no navegador, navegue até o grupo de recursos e o recurso kubernetes habilitado para Arc do Azure com base nas entradas de nome do recurso e do grupo de recursos usadas anteriormente no Install-AksHciArcOnboarding comando do 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.

Observação

Depois de integrar o cluster, ele leva cerca de 5 a 10 minutos para que os metadados do cluster (versão do cluster, versão do agente, número de nós) apareçam na página Visão geral do recurso kubernetes habilitado para o Azure Arc no portal do 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 excluir o cluster ou conectar o cluster se ele estiver atrás de um servidor proxy de saída, visite conectar um cluster kubernetes habilitado para Arc do 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

O Kubernetes habilitado para Azure Arc implanta alguns operadores no namespace azure-arc.Azure Arc enabled Kubernetes deploys a few operators into the azure-arc namespace. Você pode exibir essas implantações e pods aqui:You can view these deployments and pods here:

kubectl -n azure-arc get deployments,pods

O Kubernetes habilitado para Azure Arc consiste em alguns agentes (operadores) que são executados no cluster implantado no namespace azure-arc.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 conectado para os recursos de configuração de controle do código 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 os componentes do Azure Arcdeployment.apps/controller-manager: is an operator of operators and orchestrates interactions between Azure Arc components
  • deployment.apps/metrics-agent: coleta métricas de outros agentes do Arc para garantir que eles estejam apresentando um desempenho idealdeployment.apps/metrics-agent: collects metrics of other Arc agents to ensure that these agents are exhibiting optimal performance
  • deployment.apps/cluster-metadata-operator: coleta metadados do cluster-versão do cluster, contagem de nós e versão do agente Arc do Azuredeployment.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 mencionados acima para o Azuredeployment.apps/resource-sync-agent: syncs the above mentioned cluster metadata to Azure
  • deployment.apps/clusteridentityoperator: O kubernetes habilitado para Arc do Azure atualmente dá suporte à identidade atribuída pelo sistema.deployment.apps/clusteridentityoperator: Azure Arc enabled Kubernetes currently supports system assigned identity. clusteridentityoperator mantém o certificado MSI (identidade de serviço gerenciado) usado por outros agentes para comunicação com o Azure.clusteridentityoperator maintains the managed service identity (MSI) certificate used by other agents for communication with Azure.
  • deployment.apps/flux-logs-agent: coleta logs dos operadores de flux implantados como parte da configuração de controle do código de origemdeployment.apps/flux-logs-agent: collects logs from the flux operators deployed as a part of source control configuration

Próximas etapasNext steps