Habilitar o Azure Arc no cluster Kubernetes em seu dispositivo de GPU do Azure Stack Edge Pro
APLICA-SE A: Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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:
- Cargas de trabalho do Kubernetes no dispositivo Azure Stack Edge Pro
- O que é o Kubernetes habilitado para Azure Arc (Visualização)?
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
Você tem credenciais de entrada para um dispositivo Azure Stack Edge Pro de 1 nó.
- O dispositivo está ativado. Consulte Ativar o dispositivo.
- 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.
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
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.
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 se essas duas versões são compatíveis.
- Instalado
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.
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.
No painel direito, procure os fornecedores que pretende adicionar. Neste exemplo,
Microsoft.Kubernetes
eMicrosoft.KubernetesConfiguration
.Selecione um provedor de recursos e, na parte superior da barra de comandos, selecione Registrar. O registo demora vários minutos.
Atualize a interface do usuário até ver que o provedor de recursos está registrado. Repita o processo para ambos os provedores de recursos.
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
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.Para obter o nome do grupo de recursos, vá para Propriedades.
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 cli
Cloud Shell no portal do Azure. Se estiver usandoaz 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>
Anote o
appID
,name
,password
etenantID
como você usará esses valores como entrada para o próximo comando.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:
Conecte-se à interface do PowerShell do seu dispositivo.
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
arquivo . 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 comoAZUREPUBLICCLOUD
,AZURECHINACLOUD
,AZUREGERMANCLOUD
eAZUREUSGOVERNMENTCLOUD
.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 noSet-HcsKubernetesAzureArcAgent
cmdlet. Os nomes dos locais são normalmente formatados sem espaços. ClientId
eClientSecret
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.
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:
-
- Conecte-se à interface do PowerShell do seu dispositivo.
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