Quickstart: Ligue um cluster Kubernetes existente ao Arco de Azure

Neste arranque rápido, você vai aprender os benefícios de Azure Arc habilitado Kubernetes e como conectar um cluster Kubernetes existente ao Arco de Azure. Para um olhar conceptual sobre os aglomerados de ligação ao Arco de Azure, consulte o artigo de Arquitetura do Agente Kubernetes habilitado para o Arco de Azure.

Se não tiver uma subscrição do Azure,crie uma conta gratuita antes de começar.

Pré-requisitos

  • Utilize o ambiente Bash em Azure Cloud Shell.

    Iniciar Cloud Shell numa nova janela

  • Se preferir, instale o CLI do Azure para executar comandos de referência de CLI.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para obter mais opções de início de sessão, veja Iniciar sessão com o CLI do Azure.

    • Quando lhe for pedido, instale as extensões do CLI do Azure durante a primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

  • Um aglomerado kubernetes em funcionamento. Se não tiver um, pode criar um cluster usando uma destas opções:

    • Kubernetes em Docker (KIND)

    • Crie um cluster Kubernetes usando Docker para Mac ou Windows

    • Cluster Kubernetes auto-gerido usando Cluster API

    • Se pretender ligar um cluster OpenShift ao Arco Azure, tem de executar o seguinte comando apenas uma vez no seu cluster antes de az connectedk8s connect executar:

      oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
      

    Nota

    O cluster precisa de ter pelo menos um nó de sistema operativo e tipo de linux/amd64 arquitetura. Aglomerados com linux/arm64 apenas nós ainda não estão apoiados.

  • Um kubeconfig ficheiro e contexto que aponta para o seu cluster.

  • Permissões de 'Ler' e 'Escrever' no Arco Azure ativaram o tipo de recurso Kubernetes Microsoft.Kubernetes/connectedClusters ().

  • Instale o último lançamento do Helm 3.

  • Instalar ou atualizar o Azure CLI para a versão >= 2.16.0

  • Instale a connectedk8s extensão Azure CLI da versão >= 1.0.0:

    az extension add --name connectedk8s
    

Nota

Para localizações personalizadas no seu cluster, utilize regiões da Europa Oriental ou Da Europa Ocidental. Para todas as outras funcionalidades do Azure Arc, selecione qualquer região desta lista.

Cumprir os requisitos da rede

Importante

Os agentes da Azure Arc exigem que ambos os seguintes protocolos/portas/URLs de saída funcionem:

  • TCP na porta 443: https://:443
Ponto final (DNS) Description
https://management.azure.com (para Azure Cloud), https://management.usgovcloudapi.net (para o Governo Azure US) É necessário que o agente se conecte ao Azure e registe o cluster.
https://<region>.dp.kubernetesconfiguration.azure.com (para Azure Cloud), https://<region>.dp.kubernetesconfiguration.azure.us (para o Governo Azure US) Ponto final do plano de dados para o agente empurrar o estado e obter informações de configuração.
https://login.microsoftonline.com (para Azure Cloud), https://login.microsoftonline.us (para o Governo Azure US) Necessário para buscar e atualizar fichas do Azure Resource Manager.
https://mcr.microsoft.com Obrigado a retirar imagens de contentores para agentes do Azure Arc.
https://gbl.his.arc.azure.com Necessário para obter o ponto final regional para puxar certificados de identidade de serviço gerido (MSI) atribuídos pelo sistema.
https://<region-code>.his.arc.azure.com (para Azure Cloud), https://usgv.his.arc.azure.us (para o Governo Azure US) Necessário para retirar certificados de identidade de serviço gerido (MSI) atribuídos pelo sistema. <region-code> mapeamento para regiões de nuvens azure: eus (Leste dos EUA), weu wcus (Europa Ocidental), (Eua Central scus Ocidental), (South Central US), sea uks (Sudeste Asiático), (Reino Unido Sul), wus2 (Oeste dos EUA 2), ae (Austrália Leste), eus2 (Leste dos EUA 2), ne (Europa do Norte), fc (França Central).

1. Os fornecedores de registo da Azure Arc ativaram a Kubernetes

  1. Introduza os seguintes comandos:
    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. Monitorize o processo de registo. A inscrição pode demorar até 10 minutos.
    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

2. Criar um grupo de recursos

Execute o seguinte comando:

az group create --name AzureArcTest --location EastUS --output table

Resultado:

Location    Name
----------  ------------
eastus      AzureArcTest

3. Ligue um cluster kubernetes existente

Execute o seguinte comando:

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

Resultado:

Helm release deployment succeeded

    {
      "aadProfile": {
        "clientAppId": "",
        "serverAppId": "",
        "tenantId": ""
      },
      "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
      "agentVersion": null,
      "connectivityStatus": "Connecting",
      "distribution": "gke",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
      "identity": {
        "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "type": "SystemAssigned"
      },
      "infrastructure": "gcp",
      "kubernetesVersion": null,
      "lastConnectivityTime": null,
      "location": "eastus",
      "managedIdentityCertificateExpirationTime": null,
      "name": "AzureArcTest1",
      "offering": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "AzureArcTest",
      "tags": {},
      "totalCoreCount": null,
      "totalNodeCount": null,
      "type": "Microsoft.Kubernetes/connectedClusters"
    }

Dica

O comando acima referido sem o parâmetro de localização especificado cria o recurso Azure Arc ativado kubernetes no mesmo local que o grupo de recursos. Para criar o Arco Azure ativou o recurso Kubernetes num local diferente, especifique --location <region> ou quando executa o -l <region> az connectedk8s connect comando.

Nota

Se estiver registado no Azure CLI utilizando um principal de serviço, é necessário definir um parâmetro adicional para permitir a funcionalidade de localização personalizada no cluster.

4. Verificar a ligação do cluster

Execute o seguinte comando:

az connectedk8s list --resource-group AzureArcTest --output table

Resultado:

Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

Nota

Depois de embarcar no cluster, leva cerca de 5 a 10 minutos para que os metadados do cluster (versão de cluster, versão do agente, número de nós, etc.) surjam na página geral do Arco Azure habilitado o recurso Kubernetes no portal Azure.

5. Conecte-se usando um servidor de procuração de saída

Se o seu cluster estiver por trás de um servidor de procuração de saída, a Azure CLI e o Arco Azure ativaram que os agentes kubernetes precisam de encaminhar os seus pedidos através do servidor de procuração de saída.

  1. Desaprova as variáveis ambientais necessárias para que o Azure CLI utilize o servidor de procuração de saída:

    • Se estiver a utilizar a bash, executar o seguinte comando com valores apropriados:

      export HTTP_PROXY=<proxy-server-ip-address>:<port>
      export HTTPS_PROXY=<proxy-server-ip-address>:<port>
      export NO_PROXY=<cluster-apiserver-ip-address>:<port>
      
    • Se estiver a utilizar o PowerShell, executar o seguinte comando com valores apropriados:

      $Env:HTTP_PROXY = "<proxy-server-ip-address>:<port>"
      $Env:HTTPS_PROXY = "<proxy-server-ip-address>:<port>"
      $Env:NO_PROXY = "<cluster-apiserver-ip-address>:<port>"
      
  2. Executar o comando de ligação com parâmetros de procuração especificados:

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
    

Nota

  • Especificar excludedCIDR para garantir que a --proxy-skip-range comunicação no cluster não é quebrada para os agentes.
  • --proxy-http, --proxy-https e --proxy-skip-range são esperados para a maioria dos ambientes de procuração de saída. --proxy-cert é necessário se precisar de injetar certificados fidedignos esperados por procuração na loja de certificados fidedignas de cápsulas de agente.

6. Ver agentes do Azure Arc para Kubernetes

Azure Arc habilitado a Kubernetes implanta alguns operadores no azure-arc espaço de nomes.

  1. Veja estas implementações e cápsulas utilizando:

    kubectl get deployments,pods -n azure-arc
    
  2. Verifique se todas as cápsulas estão em Running estado.

    Resultado:

    
     NAME                                        READY      UP-TO-DATE  AVAILABLE  AGE
     deployment.apps/cluster-metadata-operator     1/1             1        1      16h
     deployment.apps/clusteridentityoperator       1/1             1        1      16h
     deployment.apps/config-agent                  1/1             1        1      16h
     deployment.apps/controller-manager            1/1             1        1      16h
     deployment.apps/flux-logs-agent               1/1             1        1      16h
     deployment.apps/metrics-agent                 1/1             1        1      16h
     deployment.apps/resource-sync-agent           1/1             1        1      16h
    
     NAME                                           READY    STATUS   RESTART AGE
     pod/cluster-metadata-operator-7fb54d9986-g785b  2/2     Running  0       16h
     pod/clusteridentityoperator-6d6678ffd4-tx8hr    3/3     Running  0       16h
     pod/config-agent-544c4669f9-4th92               3/3     Running  0       16h
     pod/controller-manager-fddf5c766-ftd96          3/3     Running  0       16h
     pod/flux-logs-agent-7c489f57f4-mwqqv            2/2     Running  0       16h
     pod/metrics-agent-58b765c8db-n5l7k              2/2     Running  0       16h
     pod/resource-sync-agent-5cf85976c7-522p5        3/3     Running  0       16h
     

7. Limpar recursos

Pode eliminar o recurso Kubernetes ativado pelo Arco Azure, quaisquer recursos de configuração associados e quaisquer agentes que corram no cluster utilizando o Azure CLI utilizando o seguinte comando:

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

Nota

A eliminação do Arco Azure permitiu que o recurso Kubernetes utilizando o portal Azure remove quaisquer recursos de configuração associados, mas não remove quaisquer agentes em execução no cluster. A melhor prática é eliminar o recurso Azure Arc ativado pela Kubernetes usando az connectedk8s delete em vez do portal Azure.

Passos seguintes

Avance para o próximo artigo para aprender a implementar configurações para o seu cluster Kubernetes conectado usando GitOps.