Partilhar via


Habilitar o Azure Arc no cluster Kubernetes em seu dispositivo de GPU do Azure Stack Edge Pro

APLICA-SE A:Sim para Pro GPU SKUAzure Stack Edge Pro - GPUSim para Pro 2 SKUAzure Stack Edge Pro 2Sim para Pro R SKUAzure Stack Edge Pro RSim para Mini R SKUAzure Stack Edge Mini R

Este artigo mostra como habilitar o Azure Arc em um cluster Kubernetes existente em seu dispositivo Azure Stack Edge Pro.

Este procedimento pressupõe que você leu e entendeu os seguintes artigos:

Pré-requisitos

Certifique-se de que concluiu os seguintes pré-requisitos no seu dispositivo Azure Stack Edge Pro e no cliente que utiliza para aceder ao dispositivo:

Para o dispositivo

  1. Você tem credenciais de autenticação para um dispositivo Azure Stack Edge Pro de 1 nó.

    1. O dispositivo está ativado. Consulte Ativar o dispositivo.
    2. O dispositivo tem a função de computação configurada por meio do portal do Azure e tem um cluster Kubernetes. Consulte Configuração de computação.
  2. Você tem acesso de proprietário à assinatura. Você precisaria desse acesso durante o passo de atribuição de funções para sua entidade de serviço.

Para o cliente que acessa o dispositivo

  1. Você tem um sistema cliente Windows que é usado para acessar o dispositivo Azure Stack Edge Pro.

    • O cliente está executando o Windows PowerShell 5.0 ou posterior. Para baixar a versão mais recente do Windows PowerShell, vá para Instalar o Windows PowerShell.

    • Você também pode ter qualquer outro cliente com um sistema operacional suportado. Este artigo descreve o procedimento ao usar um cliente Windows.

  2. Você concluiu o procedimento descrito em Acessar o cluster Kubernetes no dispositivo Azure Stack Edge Pro. Você tem:

    • O kubectl foi instalado no cliente.
    • Certifique-se de que a kubectl versão do cliente não esteja desviada mais do que uma versão da versão principal do Kubernetes a executar no seu dispositivo Azure Stack Edge Pro.
      • Use kubectl version para verificar a versão do kubectl em execução no cliente. Anote a versão completa.

      • Na interface do usuário local do seu dispositivo Azure Stack Edge Pro, vá para Atualização de software e anote o número da versão do servidor Kubernetes.

        Captura de tela de verificar o número da versão do servidor Kubernetes.

      • Verifique se essas duas versões são compatíveis.

Registrar provedores de recursos do Kubernetes

Antes de ativar o Azure Arc no cluster Kubernetes, precisa ativar e registrar Microsoft.Kubernetes e Microsoft.KubernetesConfiguration contra a sua assinatura.

  1. Para habilitar um provedor de recursos, no portal do Azure, vá para a assinatura que você planeja usar para a implantação. Vá para Provedores de Recursos.

  2. No painel direito, procure os fornecedores que pretende adicionar. Neste exemplo, Microsoft.Kubernetes e Microsoft.KubernetesConfiguration.

    Captura de tela do registro de provedores de recursos do Kubernetes.

  3. Selecione um provedor de recursos e, na parte superior da barra de comandos, selecione Registrar. O registo demora vários minutos.

    Captura de tela do registro de provedores de recursos do Kubernetes 2.

  4. Atualize a interface do usuário até ver que o provedor de recursos está registrado. Repita o processo para ambos os provedores de recursos.

    Captura de tela do registro de provedores de recursos do Kubernetes 3.

Você também pode registrar provedores de recursos por meio do az cli. Para obter mais informações, consulte Registrar os dois provedores para o Kubernetes habilitado para Azure Arc.

Criar entidade de serviço, atribuir função

  1. Verifique se você tem Subscription ID e o nome do grupo de recursos usado para a implantação de recursos para seu serviço Azure Stack Edge. Para obter a ID da assinatura, vá para seu recurso Azure Stack Edge no portal do Azure. Navegue até Visão geral > do Essentials.

    Captura de ecrã a mostrar como obter ID de subscrição.

    Para obter o nome do grupo de recursos, vá para Propriedades.

    Captura de ecrã da obtenção do nome do grupo de recursos.

  2. Para criar uma entidade de serviço, use o seguinte comando através do az cli.

    az ad sp create-for-rbac --name "<Informative name for service principal>"

    Para obter informações sobre como iniciar sessão no az cli, comece a Cloud Shell no portal do Azure. Se estiver a usar az cli num cliente local para criar a entidade de serviço, verifique se está a executar a versão 2.25 ou posterior.

    Eis um exemplo.

    PS /home/user> az ad sp create-for-rbac --name "https://azure-arc-for-ase-k8s"
    {
      "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "displayName": "azure-arc-for-ase-k8s",
      "name": "https://azure-arc-for-ase-k8s",
      "password": "<password>",
      "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
    PS /home/user>
    
  3. Anote o appId, name, passworde tenantID como você usará esses valores como entrada para o próximo comando.

    Existem várias formas de obter appId. As três opções seguintes são os métodos preferidos. Se você usar uma das seguintes opções, poderá ignorar as etapas 1, 2 e 3 da seção anterior e passar diretamente para a etapa 4 a seguir.

    • Opção 1 - Use o Minishell para executar o seguinte cmdlet do PowerShell:

      [Device-IP]: PS> Get-AzureDataBoxEdgeApplicationId
      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      [Device-IP]: PS>
      
    • Opção 2 - Use as seguintes etapas para exibir detalhes JSON para seu dispositivo No portal do Azure:

      1. Navegue até Visão geral do dispositivo Azure Stack Edge e selecione Exibição JSON no canto superior direito.

        Captura de ecrã da página de visão geral para o seu dispositivo Azure Stack Edge.

      2. Nos detalhes do JSON de recursos para o seu dispositivo, anote o principalId.

        Captura de ecrã dos detalhes de JSON para o seu dispositivo Azure Stack Edge.

    • Opção 3 - Use o PowerShell não do Azure Stack Edge em uma máquina cliente para executar o seguinte comando:

      // ASE resource group and resource name can be obtained from Azure portal
      PS C:\> $ASEResource= GetAzResource –ResourceGroupName <resource-group-name> -ResourceName <resource-name>
      PS C:\> $ASEResource.Identity.PrincipalId
      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      PS C:\>
      
  4. Depois de criar a nova entidade de serviço, ou depois de recuperá-la usando uma dessas opções, atribua a Kubernetes Cluster - Azure Arc Onboarding função à entidade recém-criada. Esta é uma função interna do Azure (use a ID da função no comando) com permissões limitadas. Utilize o seguinte comando:

    az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee <appId-from-service-principal> --scope /subscriptions/<SubscriptionID>/resourceGroups/<Resource-group-name>

    Eis um exemplo.

    PS /home/user> az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --scope /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1
    {
      "canDelegate": null,
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
      "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "principalType": "ServicePrincipal",
      "resourceGroup": "myaserg1",
      "roleDefinitionId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41",
      "scope": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1",
      "type": "Microsoft.Authorization/roleAssignments"
    }
    PS /home/user>
    

Ativar o Arc no cluster do Kubernetes

Siga estas etapas para configurar o cluster Kubernetes para gerenciamento do Azure Arc:

  1. Conecte-se à interface do PowerShell do seu dispositivo.

  2. Execute o seguinte comando:

    Set-HcsKubernetesAzureArcAgent -SubscriptionId "<Your Azure Subscription Id>" -ResourceGroupName "<Resource Group Name>" -ResourceName "<Azure Arc resource name (shouldn't exist already)>" -Location "<Region associated with resource group>" -TenantId "<Tenant Id of service principal>" -ClientId "<App id of service principal>"

    Depois de executar esse comando, você verá um prompt de acompanhamento para especificar ClientSecret. Forneça a senha da entidade de serviço no prompt.

    Adicione o CloudEnvironment parâmetro se você estiver usando uma nuvem diferente da pública do Azure. Você pode definir esse parâmetro como AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUDe AZUREUSGOVERNMENTCLOUD.

    Considerações de uso:

    • Para implantar o Azure Arc em seu dispositivo, verifique se você está usando uma região com suporte para o Azure Arc.
    • Utilize o comando az account list-locations para identificar o nome exato do local a ser utilizado no cmdlet Set-HcsKubernetesAzureArcAgent. Os nomes dos locais são normalmente formatados sem espaços.

    Importante

    Se você obtiver o Id em vez de criar um novo principal de serviço usando o método mais antigo, não especifique ClientId, TenantId ou ClientSecret.

    Eis um exemplo:

    [10.100.10.10]: PS>Set-HcsKubernetesAzureArcAgent -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "myaserg1" -ResourceName "myasetestresarc" -Location "westeurope" -TenantId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ClientId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    
    WARNING: A script or application on the remote computer 10.126.76.0 is sending a prompt request. When you are prompted,
    enter sensitive information, such as credentials or passwords, only if you trust the remote computer and the
    application or script that is requesting the data.
    
    cmdlet Set-HcsKubernetesAzureArcAgent at command pipeline position 1
    
    Supply values for the following parameters:
    ClientSecret: **********************************
    [10.100.10.10]: PS>
    

    No portal do Azure, um recurso deve ser criado com o nome fornecido no comando anterior.

    Captura de ecrã a aceder ao recurso do Azure Arc.

  3. Para verificar se o Azure Arc está habilitado com êxito, execute o seguinte comando na interface do PowerShell:

    kubectl get deployments,pods -n azure-arc

    Aqui está uma saída de exemplo que mostra os agentes do Azure Arc que foram implantados em seu cluster Kubernetes no azure-arc namespace.

    [10.128.44.240]: PS>kubectl get deployments,pods -n azure-arc
    NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/cluster-metadata-operator   1/1     1            1           13d
    deployment.apps/clusterconnect-agent        1/1     1            1           13d
    deployment.apps/clusteridentityoperator     1/1     1            1           13d
    deployment.apps/config-agent                1/1     1            1           13d
    deployment.apps/controller-manager          1/1     1            1           13d
    deployment.apps/extension-manager           1/1     1            1           13d
    deployment.apps/flux-logs-agent             1/1     1            1           13d
    deployment.apps/kube-aad-proxy              1/1     1            1           13d
    deployment.apps/metrics-agent               1/1     1            1           13d
    deployment.apps/resource-sync-agent         1/1     1            1           13d
    
    NAME                                            READY   STATUS    RESTARTS   AGE
    pod/cluster-metadata-operator-9568b899c-2stjn   2/2     Running   0          13d
    pod/clusterconnect-agent-576758886d-vggmv       3/3     Running   0          13d
    pod/clusteridentityoperator-6f59466c87-mm96j    2/2     Running   0          13d
    pod/config-agent-7cbd6cb89f-9fdnt               2/2     Running   0          13d
    pod/controller-manager-df6d56db5-kxmfj          2/2     Running   0          13d
    pod/extension-manager-58c94c5b89-c6q72          2/2     Running   0          13d
    pod/flux-logs-agent-6db9687fcb-rmxww            1/1     Running   0          13d
    pod/kube-aad-proxy-67b87b9f55-bthqv             2/2     Running   0          13d
    pod/metrics-agent-575c565fd9-k5j2t              2/2     Running   0          13d
    pod/resource-sync-agent-6bbd8bcd86-x5bk5        2/2     Running   0          13d
    [10.128.44.240]: PS>
    

Uma visão geral conceitual desses agentes está disponível aqui.

Remover o Arc do cluster do Kubernetes

Para remover o gerenciamento do Azure Arc, siga estas etapas:

  1. Conecte-se à interface do PowerShell do seu dispositivo.

  2. Execute o seguinte comando:

    Remove-HcsKubernetesAzureArcAgent

Nota

Por padrão, quando os recursos yamls são excluídos do repositório Git, os recursos correspondentes não são excluídos do cluster Kubernetes. Você precisa definir --sync-garbage-collection no Arc OperatorParams para permitir a exclusão de recursos quando excluídos do repositório git. Para obter mais informações, consulte Excluir uma configuração

Próximos passos

Para entender como executar uma implantação do Azure Arc, consulte Implantar um aplicativo PHP Guestbook sem estado com Redis via GitOps em um dispositivo Azure Stack Edge Pro.