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

APLICA-SE A:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro R Azure Stack Edge Mini RYes for Mini R SKU

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 leu e compreendeu 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 entrada 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 Configurar computação.
  2. Você tem acesso de proprietário à assinatura. Você precisaria desse acesso durante a etapa de atribuição de função 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. Tu:

    • Instalado kubectl no cliente.
    • Certifique-se de que a kubectl versão do cliente não esteja distorcida mais do que uma versão da versão mestre do Kubernetes em execução 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.

        Verify Kubernetes server version number

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

Registrar provedores de recursos do Kubernetes

Antes de habilitar o Azure Arc no cluster do Kubernetes, você precisa habilitar e registrar Microsoft.Kubernetes sua Microsoft.KubernetesConfiguration 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.

    Register Kubernetes resource providers

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

    Register Kubernetes resource providers 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.

    Register Kubernetes resource providers 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.

    Get subscription ID

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

    Get resource group name

  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 fazer logon no , Inicie o Cloud Shell no az cliportal do Azure. Se estiver usando az cli em um cliente local para criar a entidade de serviço, verifique se você está executando 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 , , namepassworde tenantID como você usará esses valores como entrada para o appIDpróximo comando.

  4. Depois de criar a nova entidade de serviço, 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/59272f92-e5ce-4aeb-9c0c-62532d8caf25",
      "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. Escreva:

    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>"

    Quando esse comando é executado, há um prompt de acompanhamento para inserir o ClientSecretarquivo . Forneça a senha da entidade de serviço.

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

    Nota

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

    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.

    Go to Azure Arc resource

  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.
  1. Escreva:

    Remove-HcsKubernetesAzureArcAgent

Nota

Por padrão, quando o recurso yamls é excluído 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