Compartilhar via


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

APLICA-SE A: Sim, ao SKU do Pro GPUAzure Stack Edge Pro - GPUSim, ao SKU do Pro 2Azure Stack Edge Pro 2Sim, ao SKU do Pro RAzure Stack Edge Pro RSim, ao SKU do Mini RAzure Stack Edge Mini R

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ê atendeu aos seguintes pré-requisitos no dispositivo do Azure Stack Edge Pro e o cliente usado 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 em 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.

        Verificar o número de versão do servidor do Kubernetes

      • 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ê precisará habilitar e registrar Microsoft.Kubernetes e Microsoft.KubernetesConfiguration na assinatura.

  1. Para habilitar um provedor de recursos, no portal do Azure, acesse a assinatura que você está planejando 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.

    Registrar os provedores de recursos do Kubernetes

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

    Registrar os provedores de recursos do Kubernetes 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.

    Registrar os provedores de recursos do Kubernetes 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.

    Obter ID da assinatura

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

    Obter o nome do grupo de recursos

  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. Ao usar 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 appID, name, password e tenantID, pois você usará esses valores para entrada no pró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/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>
    

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 parâmetro CloudEnvironment se você estiver usando uma nuvem diferente do Azure público. 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.

    Acessar o recurso do Azure Arc

  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

    Este é um exemplo de saída que mostra os agentes do Azure Arc implantados no cluster do Kubernetes no namespace azure-arc.

    [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