Exercício – Implantar o cluster K3S de um único computador 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 do Windows. 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.
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.
Comece ativando a área restrita do Azure.
Execute o seguinte comando no Azure Cloud Shell para definir as variáveis para criar a VM do Azure:
resourcegroup="<rgn>[resource group name]</rgn>" vmname="myVM" username="azureuser" let "randomIdentifier=$RANDOM*$RANDOM" adminpassword="Admin-$randomIdentifier-Password!" echo Admin Password: $adminpassword
Observação
Anote
Admin Password
. 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 \ --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/learn-rg-0000/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": "learn-rg-0000", "zones": "" }
Baixar o AKS Edge Essentials
Vamos baixar o instalador do K3s e os arquivos do nó do Windows para o compartilhamento de arquivos do Azure e, em seguida, montá-lo na VM para que possamos acessá-lo usando a unidade com a letra Z.
Anote o nome da conta de armazenamento, a chave e o nome do compartilhamento de arquivo do Azure. Isto será necessário mais tarde:
storageAccountName=$(az storage account list --resource-group $resourcegroup --query '[0].name' -o tsv) storageAccountKey=$(az storage account keys list --resource-group $resourcegroup --account-name $storageAccountName --query '[0].value' -o tsv) storageAccountFile=$(az storage share list --account-name $storageAccountName --account-key $storageAccountKey --query '[0].name' -o tsv) echo Storage Account Name: $storageAccountName echo Storage Account Key: $storageAccountKey echo Storage Account File: $storageAccountFile
Baixe o instalador do K3s, os arquivos de nó do Windows e os certificados para o compartilhamento de arquivo do Azure:
curl -L -o ~/clouddrive/MicrosoftRootCertificateAuthority2011.cer "https://download.microsoft.com/download/2/4/8/248D8A62-FCCD-475C-85E7-6ED59520FC0F/MicrosoftRootCertificateAuthority2011.cer" && echo "Downloaded MicrosoftRootCertificateAuthority2011.cer" curl -L -o ~/clouddrive/MicCodSigPCA2011.crt "https://www.microsoft.com/pkiops/certs/MicCodSigPCA2011_2011-07-08.crt" && echo "Downloaded MicCodSigPCA2011.crt" curl -L -o ~/clouddrive/AksEdge-Learn.msi "https://aka.ms/aks-edge/k3s-msi" && echo "Downloaded AksEdge-Learn.msi" curl -L -o ~/clouddrive/AksEdgeWindows-Learn.zip "https://aka.ms/aks-edge/windows-node-zip" && echo "Downloaded AksEdgeWindows-Learn.zip"
Crie 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.
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.
Execute os comandos do PowerShell a seguir para montar o compartilhamento de arquivo do Azure na VM com a letra Z. Substitua os valores de
[YOUR_STORAGE_ACCOUNT_NAME]
,[YOUR_STORAGE_ACCOUNT_KEY]
e[YOUR_STORAGE_ACCOUNT_FILE]
pelos valores que você anotou anteriormente:$storageAccountName = "[YOUR_STORAGE_ACCOUNT_NAME]" $storageAccountKey = "[YOUR_STORAGE_ACCOUNT_KEY]" $storageAccountFile = "[YOUR_STORAGE_ACCOUNT_FILE]" # Save the password so the drive will persist on reboot cmd.exe /C "cmdkey /add:`"$storageAccountName.file.core.windows.net`" /user:`"localhost\$storageAccountName`" /pass:`"$storageAccountKey`"" # Mount the drive with the letter Z New-PSDrive -Name Z -PSProvider FileSystem -Root "\\$storageAccountName.file.core.windows.net\$storageAccountFile" -Persist
Implantar o AKS Edge Essentials
Agora que a VM foi criada e os arquivos de instalação baixados, vamos executar o script do PowerShell AksEdgeQuickStart-v2.ps1
para facilitar a implantação do AKS Edge Essentials.
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"
Instale certificados do Windows:
certutil.exe -addstore -f "AuthRoot" "Z:\\MicrosoftRootCertificateAuthority2011.cer" certutil.exe -addstore -f "CA" "Z:\\MicCodSigPCA2011.crt"
Defina os parâmetros para criar um cluster K3S de um único computador com um nó do Linux e do Windows. Os arquivos
aideuser-config.json
eaksedge-config.json
são usados para executar o script do PowerShellAksEdgeQuickStart-v2.ps1
:$aideuserConfig = @" { "SchemaVersion": "1.1", "Version": "1.0", "AksEdgeProduct": "AKS Edge Essentials - K3s", "AksEdgeProductUrl": "Z:\\AksEdge-Learn.msi", "Azure": { "SubscriptionName": "", "SubscriptionId": "", "TenantId": "", "ResourceGroupName": "", "ServicePrincipalName": "", "Location": "", "CustomLocationOID":"", "Auth":{ "ServicePrincipalId":"", "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": 2048, "DataSizeInGB": 20 }, "WindowsNode": { "CpuCount": 2, "MemoryInMB": 2048 } } ] } "@ 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 30 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:- Descompacta os arquivos de instalação do Windows.
- 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 e do Windows.
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/04/2024 15:29:34] Waiting for Windows node IP address... [01/04/2024 15:29:34] Testing Windows node control channel... [01/04/2024 15:29:37] ...successfully connected to the Windows node [01/04/2024 15:31:39] Waiting for Windows node to transition to ready state (796 seconds remaining) - Waiting for Kubernetes node (myvm-wedge) to reach condition Ready, time remaining = 796 seconds - Kubernetes node (myvm-wedge) reached condition Ready [01/04/2024 15:31:57] AksEdge - copying Kubeconfig into the host. [01/04/2024 15:32:02] AksEdge - new deployment successfully created. * AksEdge VM deployment successfull. Deployment Successful. Step 4: Connect to Arc >> skipping step 4 Duration: 0 hrs 23 mins 13 seconds
- Na pasta de trabalho da VM
Dica
Como o processo de instalação leva cerca de 30 minutos para ser concluído, você pode passar para a próxima unidade de aprendizado. Voltaremos a esse tema mais tarde.