Habilitar o Azure Arc no cluster do Kubernetes no 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 existente do Kubernetes no dispositivo do Azure Stack Edge Pro.

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

Pré-requisitos

Verifique se você concluiu os seguintes pré-requisitos em seu dispositivo Azure Stack Edge Pro e no cliente que você usa para acessar o dispositivo:

Para dispositivo

  1. Você tem credenciais de logon para um dispositivo Azure Stack Edge Pro de um nó.

    1. O dispositivo está ativado. Confira Ativar o dispositivo.
    2. O dispositivo tem a função de computação configurada por meio do portal do Azure e conta com um cluster Kubernetes. Confira Configurar computação.
  2. Você tem acesso de proprietário à assinatura. Você precisará desse acesso durante a etapa de atribuição de função para a entidade de serviço.

Para 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 usar qualquer outro cliente que tenha um Sistema operacional compatível. Este artigo descreve o procedimento usando um cliente Windows.

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

    • Instalou kubectl no cliente.
    • Verificou se a versão de kubectl do cliente está defasada em, no máximo, uma versão em relação à versão mestre do Kubernetes executada no seu dispositivo Azure Stack Edge Pro.
      • Use kubectl version para verificar a versão de kubectl em execução no cliente. Anote a versão completa.

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

        Verify Kubernetes server version number

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

Registrar os 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. Acesse Provedores de Recursos.

  2. No painel direito, pesquise os provedores que você deseja 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 registro leva vários minutos.

    Register Kubernetes resource providers 2

  4. Atualize a interface do usuário até que você veja 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 saber mais, confira Registrar os dois provedores no Kubernetes habilitado para Azure Arc.

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

  1. Você deve ter Subscription ID e o nome do grupo de recursos usado para a implantação de recursos do serviço Azure Stack Edge. Para obter a ID da assinatura, acesse o recurso Azure Stack Edge no portal do Azure. Navegue até Visão geral > Conceitos básicos.

    Get subscription ID

    Para obter o nome do grupo de recursos, acesse Propriedades.

    Get resource group name

  2. Para criar uma entidade de serviço, use o comando a seguir por meio do az cli.

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

    Para saber como fazer logon no az cli, inicie o Cloud Shell no portal 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.

    Veja 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 , name, passworde 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 função Kubernetes Cluster - Azure Arc Onboarding à entidade recém-criada. Essa é uma função interna do Azure (use a ID da função no comando) com permissões limitadas. Use 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>

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

Habilitar o Arc no cluster do Kubernetes

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

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

  2. Tipo:

    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 ClientSecret. Forneça a senha da entidade de serviço.

    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, AZUREGERMANCLOUD e AZUREUSGOVERNMENTCLOUD.

    Observação

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

    Veja 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 foi 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 do 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. Tipo:

    Remove-HcsKubernetesAzureArcAgent

Observação

Por padrão, quando yamls do recurso 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 nos OperatorParams do Arc para permitir a exclusão de recursos quando eles são excluídos no repositório Git. Para obter informações, confira Excluir uma configuração

Próximas etapas

Para entender como executar uma implantação do Azure Arc, confira Implantar um aplicativo PHP sem estadoGuestbook com o Redis por meio do GitOps em um dispositivo do Azure Stack Edge Pro