Habilitar o Azure Arc no cluster do Kubernetes no 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 existente do Kubernetes no dispositivo do Azure Stack Edge Pro.
Este procedimento pressupõe que você leu e entendeu os seguintes artigos:
- Cargas de trabalho do Kubernetes no dispositivo Azure Stack Edge Pro
- O que é Kubernetes habilitado para o Azure Arc (versão prévia)?
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
Você tem credenciais de logon para um dispositivo Azure Stack Edge Pro de um nó.
- O dispositivo está ativado. Confira Ativar o dispositivo.
- 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.
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
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.
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.
Verifique se essas duas versões são compatíveis.
- Instalou
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.
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.
No painel direito, pesquise os provedores que você deseja adicionar. Neste exemplo,
Microsoft.Kubernetes
eMicrosoft.KubernetesConfiguration
.Selecione um provedor de recursos e, na parte superior da barra de comandos, selecione Registrar. O registro leva vários minutos.
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.
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
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.Para obter o nome do grupo de recursos, acesse Propriedades.
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 usaraz 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>
Anote
appID
,name
,password
etenantID
, pois você usará esses valores para entrada no próximo comando.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:
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 comoAZUREPUBLICCLOUD
,AZURECHINACLOUD
,AZUREGERMANCLOUD
eAZUREUSGOVERNMENTCLOUD
.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 cmdletSet-HcsKubernetesAzureArcAgent
. Os nomes de local normalmente são formatados sem espaços. ClientId
eClientSecret
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.
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:
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