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

        Verifique 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 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.

    Registrar 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.

    Registrar 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.

    Registrar 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.

    Obter ID de subscrição

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

    Obter 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 fazer logon no , Inicie o az cliCloud 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.

    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.

  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/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. 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 ClientSecretarquivo . 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, AZUREGERMANCLOUDe 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 az account list-locations comando para descobrir o 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.

    Ir para o recurso 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.
  1. Tipo:

    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