Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
APLICA-SE A:
Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
Este artigo mostra como habilitar o Azure Arc em um cluster Kubernetes existente em seu dispositivo Azure Stack Edge Pro.
Nota
Siga as instruções no Quickstart: Ligue um cluster Kubernetes existente ao Azure Arc.
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 é o Kubernetes com Azure Arc (Versão Prévia)?
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 autenticação 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 Configuração de computação.
Você tem acesso de proprietário à assinatura. Você precisaria desse acesso durante o passo de atribuição de funções 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. Você tem:
- O
kubectlfoi instalado no cliente. - Certifique-se de que a
kubectlversão do cliente não esteja desviada mais do que uma versão da versão principal do Kubernetes a executar no seu dispositivo Azure Stack Edge Pro.Use
kubectl versionpara 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.
- O
Registrar provedores de recursos do Kubernetes
Antes de ativar o Azure Arc no cluster Kubernetes, precisa ativar e registrar Microsoft.Kubernetes e Microsoft.KubernetesConfiguration contra a sua 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.KuberneteseMicrosoft.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 IDe 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 iniciar sessão no
az cli, comece a Cloud Shell no portal do Azure. Se estiver a usaraz clinum cliente local para criar a entidade de serviço, verifique se está a executar 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,passwordetenantIDcomo você usará esses valores como entrada para o próximo comando.Existem várias formas de obter
appId. As três opções seguintes são os métodos preferidos. Se você usar uma das seguintes opções, poderá ignorar as etapas 1, 2 e 3 da seção anterior e passar diretamente para a etapa 4 a seguir.Opção 1 - Use o Minishell para executar o seguinte cmdlet do PowerShell:
[Device-IP]: PS> Get-AzureDataBoxEdgeApplicationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [Device-IP]: PS>Opção 2 - Use as seguintes etapas para exibir detalhes JSON para seu dispositivo No portal do Azure:
Navegue até Visão geral do dispositivo Azure Stack Edge e selecione Exibição JSON no canto superior direito.
Nos detalhes do JSON de recursos para o seu dispositivo, anote o
principalId.
Opção 3 - Use o PowerShell não do Azure Stack Edge em uma máquina cliente para executar o seguinte comando:
// ASE resource group and resource name can be obtained from Azure portal PS C:\> $ASEResource= GetAzResource –ResourceGroupName <resource-group-name> -ResourceName <resource-name> PS C:\> $ASEResource.Identity.PrincipalId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx PS C:\>
Depois de criar a nova entidade de serviço, ou depois de recuperá-la usando uma dessas opções, atribua a
Kubernetes Cluster - Azure Arc Onboardingfunçã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.
Execute o seguinte comando:
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>"Depois de executar esse comando, você verá um prompt de acompanhamento para especificar
ClientSecret. Forneça a senha da entidade de serviço no prompt.Adicione o
CloudEnvironmentparâmetro se você estiver usando uma nuvem diferente da pública do Azure. Você pode definir esse parâmetro comoAZUREPUBLICCLOUD,AZURECHINACLOUD,AZUREGERMANCLOUDeAZUREUSGOVERNMENTCLOUD.Considerações de uso:
- Para implantar o Azure Arc em seu dispositivo, verifique se você está usando uma região com suporte para o Azure Arc.
- Utilize o comando
az account list-locationspara identificar o nome exato do local a ser utilizado no cmdletSet-HcsKubernetesAzureArcAgent. Os nomes dos locais são normalmente formatados sem espaços.
Importante
Se você obtiver o
Idem vez de criar um novo principal de serviço usando o método mais antigo, não especifiqueClientId,TenantIdouClientSecret.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-arcAqui está uma saída de exemplo que mostra os agentes do Azure Arc que foram implantados em seu cluster Kubernetes no
azure-arcnamespace.[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.
Execute o seguinte comando:
Remove-HcsKubernetesAzureArcAgent
Nota
Por padrão, quando os recursos yamls 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 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.