Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 existente do Kubernetes no dispositivo do Azure Stack Edge Pro.
Observação
Siga as instruções no Início Rápido: conectar 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 é 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. Consulte Configurar computação.
Você tem acesso pleno à 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ê tem:
- Instalou
kubectlno cliente. - Verificou se a versão de
kubectldo 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 versionpara 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.KuberneteseMicrosoft.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 IDe 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 cliem 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,passwordetenantID, pois você usará esses valores para entrada no próximo comando.Há várias maneiras de obter
appId. As três opções a seguir são os métodos preferenciais. Se você usar uma das opções a seguir, poderá ignorar as etapas 1, 2 e 3 da seção anterior e ir diretamente para a etapa 4 a seguir.Opção 1 – Usar 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é a visão geral do dispositivo do Azure Stack Edge e selecione a exibição JSON no canto superior direito.
Nos detalhes do JSON do Recurso do dispositivo, anote o
principalId.
Opção 3 – Usar o PowerShell não Azure Stack Edge em um computador 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 entidade de serviço ou de recuperá-la usando uma destas opções, atribua a função
Kubernetes Cluster - Azure Arc Onboardingà nova entidade. 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:
Conecte-se à interface do PowerShell do dispositivo.
Execute o comando a seguir:
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ê irá ver uma nova solicitação para especificar
ClientSecret. Forneça a senha da entidade de serviço no prompt.Adicione o parâmetro
CloudEnvironmentse você estiver usando uma nuvem diferente do Azure público. 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.
- Use o comando
az account list-locationspara determinar o nome exato da localização a ser passado no cmdletSet-HcsKubernetesAzureArcAgent. Os nomes de local normalmente são formatados sem espaços.
Importante
Se você obter o
Idinvés de criar um novo princípio de serviço usando o método mais antigo, não especifiqueClientId,TenantIdouClientSecret.Aqui está 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-arcEste é 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:
Conecte-se à interface do PowerShell do dispositivo.
Execute o comando a seguir:
Remove-HcsKubernetesAzureArcAgent
Observação
Por padrão, quando o recurso yamls é excluído do repositório Git, os recursos correspondentes não são excluídos do cluster do 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, consulte Implantar um aplicativo PHP Guestbook sem estado com Redis por meio do GitOps em um dispositivo Azure Stack Edge Pro.