Exercício – habilitar o cluster do AKS Edge Essentials
Neste exercício, implantamos o AKS Edge Essentials em um cluster K3S de um único computador com um nó do Linux e o habilitamos para o Arc. Usamos o Azure Cloud Shell para criar uma VM (máquina virtual) do Azure com o Windows 11 Enterprise e executamos um script do PowerShell para facilitar a implantação do AKS Edge Essentials e, em seguida, conectá-lo ao Azure Arc.
Criar recursos necessários na sua assinatura do Azure
Esta unidade fornece comandos da CLI do Azure que você pode executar com uma assinatura do Azure. Se não tiver uma assinatura do Azure, crie-a gratuitamente agora mesmo.
Importante
É necessária uma assinatura do Azure com a função Proprietário ou uma combinação das funções Colaborador e Administrador de Acesso do Usuário. Para verificar o nível de acesso, navegue até sua assinatura no portal do Azure, selecione Controle de acesso (IAM) no lado esquerdo do portal do Azure e, em seguida, selecione Exibir meu acesso. Para obter mais informações, consulte como gerenciar grupos de recursos do Azure usando o portal do Azure.
Em outra guia do navegador, acesse o Azure Cloud Shell.
Execute os comandos a seguir no Cloud Shell para configurar sua sessão e criar um grupo de recursos a ser usado nesta unidade. Substitua o valor de
<your-Azure-subscription-ID>
pelo valor da ID da assinatura do Azure:resourcegroup="aksedge-training" location="westus3" subscriptionid="<your-Azure-subscription-ID>" az account set --subscription $subscriptionid az group create --name $resourcegroup --location $location
Crie uma nova entidade de serviço com a função Proprietário interna e restrita ao escopo do grupo de recursos. Essa entidade de serviço é usada para se conectar ao Azure Arc. Use o comando az ad sp create-for-rbac:
resourcegroup="aksedge-training" serviceprincipalname="aksedge-sp" subscriptionid=$(az account show --query id -o tsv) az ad sp create-for-rbac --name $serviceprincipalname --role "Owner" --scopes /subscriptions/$subscriptionid/resourceGroups/$resourcegroup
Observação
Anote
Service Principal appId
eService Principal password
. Você precisará dela mais tarde.Habilite todos os provedores de recursos necessários na assinatura do Azure usando o comando az provider register:
az provider register --namespace Microsoft.HybridCompute az provider register --namespace Microsoft.GuestConfiguration az provider register --namespace Microsoft.HybridConnectivity az provider register --namespace Microsoft.Kubernetes az provider register --namespace Microsoft.KubernetesConfiguration az provider register --namespace Microsoft.ExtendedLocation
Criar uma VM do Azure com o Windows 11 Enterprise
Vamos criar a VM do Azure com o Windows 11 Enterprise usando o Azure Cloud Shell.
Execute o seguinte comando no Cloud Shell para definir as variáveis para criar a VM do Azure e executar o script do PowerShell
AksEdgeQuickStart-v2.ps1
posteriormente:resourcegroup="aksedge-training" location="westus3" vmname="myVM" username="azureuser" let "randomIdentifier=$RANDOM*$RANDOM" adminpassword="Admin-$randomIdentifier-Password!" subscriptionname=$(az account show --query name -o tsv) subscriptionid=$(az account show --query id -o tsv) tenantid=$(az account show --query tenantId -o tsv) echo Admin Password: $adminpassword echo Subscription Name: $subscriptionname echo Subscription ID: $subscriptionid echo Tenant ID: $tenantid echo Resource Group Name: $resourcegroup
Observação
Anote
Admin Password
,Subscription Name
,Subscription ID
,Tenant ID
eResource Group Name
. Você precisará dela mais tarde.Crie a VM do Azure com o Windows 11 Enterprise usando o comando az vm create:
az vm create \ --resource-group $resourcegroup \ --location $location \ --name $vmname \ --image MicrosoftVisualStudio:windowsplustools:base-win11-gen2:latest \ --public-ip-sku Standard \ --admin-username $username \ --admin-password $adminpassword \ --size Standard_D2s_v5 \ --security-type TrustedLaunch
A criação da VM e dos recursos de suporte demora alguns minutos. O seguinte exemplo de saída mostra que a operação de criação de VM foi bem-sucedida.
{ "fqdns": "", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/aksedge-training/providers/Microsoft.Compute/virtualMachines/myVM", "location": "westus3", "macAddress": "00-00-00-00-00-00", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "00.000.000.000", "resourceGroup": "aksedge-training", "zones": "" }
Execute o cmdlet Get-AzRemoteDesktopFile do PowerShell para obter o arquivo RDP para se conectar à VM:
publicIp=$(az vm show -d -g $resourcegroup -n $vmname --query publicIps -o tsv) echo full address:s:$publicIp > ./myvm.rdp echo username:s:$username >> ./myvm.rdp
Baixe o arquivo RDP no computador local:
download myvm.rdp
Abra o arquivo RDP e conecte-se à VM usando azureuser como o usuário e
Admin Password
, do qual você fez uma anotação anteriormente, como a senha.
Dica
Ao fazer logon pela primeira vez na VM do Azure do Windows 11 Enterprise, você pode aceitar todas as opções clicando em Avançar e Aceitar.
Implantar e habilitar o AKS Edge Essentials para Arc
Agora que a VM foi criada, vamos executar o script do PowerShell AksEdgeQuickStart-v2.ps1
para facilitar a implantação do AKS Edge Essentials e conectá-lo ao Azure Arc.
Observação
Os comandos a seguir são executados na linha de comando do PowerShell da VM.
Para abrir a linha de comando do PowerShell, clique no menu Iniciar e digite PowerShell. Depois, execute o seguinte comando para alterar o diretório de trabalho para
C:\aksedgeLearn
:if (!(Test-Path -Path "C:\aksedgeLearn")) { New-Item -ItemType Directory -Path "C:\aksedgeLearn" | Out-Null } Push-Location "C:\aksedgeLearn"
Baixe o instalador do K3s do AKS Edge Essentials:
curl -L -o AksEdge-Learn.msi "https://aka.ms/aks-edge/k3s-msi"
Defina os parâmetros para criar um cluster K3S de um único computador com um nó do Linux. Os arquivos
aideuser-config.json
eaksedge-config.json
são usados para executar o script do PowerShellAksEdgeQuickStart-v2.ps1
. Substitua os valores de[SUBSCRIPTION_NAME]
,[SUBSCRIPTION_ID]
,[TENANT_ID]
,[RESOURCE_GROUP_NAME]
,[SERVICE_PRINCIPAL_ID]
e[SERVICE_PRINCIPAL_PASSWORD]
pelos valores que você anotou anteriormente:$aideuserConfig = @" { "SchemaVersion": "1.1", "Version": "1.0", "AksEdgeProduct": "AKS Edge Essentials - K3s", "AksEdgeProductUrl": "C:\\aksedgeLearn\\AksEdge-Learn.msi", "Azure": { "SubscriptionName": "[SUBSCRIPTION_NAME]", "SubscriptionId": "[SUBSCRIPTION_ID]", "TenantId": "[TENANT_ID]", "ResourceGroupName": "[RESOURCE_GROUP_NAME]", "ServicePrincipalName": "aksedge-sp", "Location": "westus3", "CustomLocationOID":"", "Auth":{ "ServicePrincipalId":"[SERVICE_PRINCIPAL_ID]", "Password":"[SERVICE_PRINCIPAL_PASSWORD]" } }, "AksEdgeConfigFile": "aksedge-config.json" } "@ echo $aideuserConfig | Out-File -FilePath "aideuser-config.json" $aksedgeConfig = @" { "SchemaVersion": "1.9", "Version": "1.0", "DeploymentType": "SingleMachineCluster", "Init": { "ServiceIPRangeSize": 10 }, "Network": { "NetworkPlugin": "flannel", "InternetDisabled": false }, "User": { "AcceptEula": true, "AcceptOptionalTelemetry": true }, "Machines": [ { "LinuxNode": { "CpuCount": 2, "MemoryInMB": 4096, "DataSizeInGB": 20 } } ] } "@ echo $aksedgeConfig | Out-File -FilePath "aksedge-config.json"
Baixe e execute script do PowerShell
AksEdgeQuickStart-v2.ps1
:$url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStart-v2.ps1" Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStart-v2.ps1 Unblock-File .\AksEdgeQuickStart-v2.ps1 Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force .\AksEdgeQuickStart-v2.ps1 -AideUserConfigFilePath .\aideuser-config.json -AksEdgeConfigFilePath .\aksedge-config.json
Observação
O processo de instalação leva cerca de 10 minutos para ser concluído.
Esse script automatiza as seguintes etapas:
- Na pasta de trabalho da VM
C:\aksedgeLearn
, o script baixa o arquivo GitHub de Azure/AKS-Edge e descompacta em uma pasta AKS-Edge-main. - Invoca a função
Start-AideWorkflow
que executa as seguintes tarefas:- Instala o MSI do AKS Edge Essentials.
- Instala os recursos necessários do sistema operacional do host (
Install-AksEdgeHostFeatures
). - Implanta um cluster K3S de um único computador com um nó do Linux.
- Invoca a função
Connect-AideArc
que executa as seguintes tarefas:- Instala o Azure Connected Machine Agent e conecta o computador host ao Arc para Servidores.
- Conecta o cluster implantado ao Arc para Kubernetes conectados.
O exemplo a seguir, com as últimas linhas da saída, mostra que o download e a instalação da distribuição do K3s do AKS Edge Essentials foram bem-sucedidos. Você também pode acessar o arquivo de log em
C:\aksedgeLearn\aksedgedlog-yymmdd-hhmm.txt
... [01/26/2024 16:20:23] AksEdge - Connecting cluster to Azure Arc - Checking Az PS module dependencies - Checking for NuGet - NuGet found - Az.Resources module with version 6.4.1 is found - Az.Accounts module with version 2.11.2 is found - Az.ConnectedKubernetes module with version 0.9.0 is found - Connecting to Azure Account - Verifying Azure Account connection ... - Verifying the Azure resource providers Microsoft.Kubernetes, Microsoft.KubernetesConfiguration, Microsoft.ExtendedLocation are registered - Resource provider Microsoft.Kubernetes is registered. - Resource provider Microsoft.KubernetesConfiguration is registered. - Resource provider Microsoft.ExtendedLocation is registered. - Checking whether cluster 'myVM-k3s' is connected to Azure Arc... - All checks succeeded. Connecting cluster to Azure Arc. - Populating tags for AKS-EE Cluster -- Connection succeeded. Connecting Azure Arc-enabled Server.. Disabling WindowsAzureGuestAgent VERBOSE: Performing the operation "Set-Service" on target "Windows Azure Guest Agent (WindowsAzureGuestAgent)". VERBOSE: Performing the operation "Stop-Service" on target "Windows Azure Guest Agent (WindowsAzureGuestAgent)". WARNING: Waiting for service 'Windows Azure Guest Agent (WindowsAzureGuestAgent)' to stop... -- Connection succeeded. Azure Arc connections successful. Duration: 0 hrs 8 mins 29 seconds
- Na pasta de trabalho da VM
Para confirmar se a implantação foi bem-sucedida, execute o seguinte comando:
kubectl get nodes -o wide kubectl get pods -A -o wide
A seguinte captura de tela de exemplo mostra que o nó do Linux está pronto e os pods estão em execução:
Exibir o cluster no portal do Azure
Você pode visualizar seu cluster no portal do Azure se navegar para
aksedge-training
grupo de recursos e, em seguida, selecionar o recursomyVM-k3s
Kubernetes - Azure Arc.No painel esquerdo, selecione a opção Namespaces em Recursos do Kubernetes (versão prévia).
Você precisa entrar usando um token de portador para exibir os recursos do Kubernetes. Para obter o token, execute o seguinte comando na linha de comando do PowerShell da VM:
Get-AksEdgeManagedServiceToken
Agora, você pode exibir recursos em seu cluster. As Cargas de trabalho mostram os pods em execução no cluster.