Esercizio - Distribuire il cluster K3S del servizio Azure Kubernetes Edge Essentials
In questo esercizio, si distribuisce AKS Edge Essentials in un singolo cluster K3S del computer con un nodo Linux e Windows. Azure Cloud Shell viene usato per creare una macchina virtuale (VM) di Azure con Windows 11 Enterprise ed eseguire uno script di PowerShell per semplificare la distribuzione di AKS Edge Essentials.
Creare una macchina virtuale di Azure con Windows 11 Enterprise
Ecco come creare la macchina virtuale di Azure con Windows 11 Enterprise usando Azure Cloud Shell.
Per iniziare, attivare la sandbox di Azure.
Eseguire il comando seguente in Azure Cloud Shell per impostare le variabili per la creazione della macchina virtuale di Azure:
resourcegroup="<rgn>[resource group name]</rgn>" vmname="myVM" username="azureuser" let "randomIdentifier=$RANDOM*$RANDOM" adminpassword="Admin-$randomIdentifier-Password!" echo Admin Password: $adminpassword
Nota
Prendere nota di
Admin Password
. Sarà necessario più avanti.Creare la macchina virtuale di Azure con Windows 11 Enterprise usando il 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
La creazione della macchina virtuale e delle risorse di supporto richiede alcuni minuti. L'output di esempio seguente mostra che l'operazione di creazione della macchina virtuale ha avuto esito positivo.
{ "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": "" }
Scarica AKS Edge Essentials
Scaricare il programma di installazione K3s e i file del nodo Windows nella condivisione file di Azure, quindi montarlo nella macchina virtuale in modo da accedervi usando l'unità con la lettera Z.
Prendere nota del nome dell'account di archiviazione, della chiave e del nome della condivisione file di Azure. Saranno necessari in un secondo momento:
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
Scaricare il programma di installazione K3s, i file dei nodi e i certificati di Windows nella condivisione file di 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"
Creare il file RDP per connettersi alla macchina virtuale:
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
Scaricare il file RDP nel computer locale:
download myvm.rdp
Aprire il file RDP e connettersi alla macchina virtuale usando azureuser come utente e il valore
Admin Password
annotato in precedenza, come password.Suggerimento
Quando si accede per la prima volta alla macchina virtuale Windows 11 Enterprise di Azure, è possibile accettare tutte le opzioni facendo clic su Avanti e Accetta.
Nota
I comandi seguenti vengono eseguiti nella riga di comando di PowerShell della macchina virtuale.
Aprire la riga di comando di PowerShell facendo clic sul menu Start e digitando PowerShell.
Eseguire i comandi di PowerShell seguenti per montare la condivisione file di Azure nella macchina virtuale con la lettera Z. Sostituire i valori di
[YOUR_STORAGE_ACCOUNT_NAME]
,[YOUR_STORAGE_ACCOUNT_KEY]
e[YOUR_STORAGE_ACCOUNT_FILE]
con i valori annotati in precedenza:$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
Distribuire AKS Edge Essentials
Dopo aver creato la macchina virtuale scaricati i file di installazione, eseguire lo script di PowerShell AksEdgeQuickStart-v2.ps1
per semplificare la distribuzione di AKS Edge Essentials.
Nota
I comandi seguenti vengono eseguiti nella riga di comando di PowerShell della macchina virtuale.
Aprire la riga di comando di PowerShell facendo clic sul menu Start e digitando PowerShell. Eseguire quindi il comando seguente per impostare la directory di lavoro su
C:\aksedgeLearn
:if (!(Test-Path -Path "C:\aksedgeLearn")) { New-Item -ItemType Directory -Path "C:\aksedgeLearn" | Out-Null } Push-Location "C:\aksedgeLearn"
Installare i certificati di Windows:
certutil.exe -addstore -f "AuthRoot" "Z:\\MicrosoftRootCertificateAuthority2011.cer" certutil.exe -addstore -f "CA" "Z:\\MicCodSigPCA2011.crt"
Impostare i parametri per creare un cluster K3S a macchina singola con un nodo Linux e Windows. I file
aideuser-config.json
eaksedge-config.json
vengono usati per eseguire lo scriptAksEdgeQuickStart-v2.ps1
di PowerShell:$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"
Scaricare ed eseguire lo script di 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
Nota
Il processo di installazione richiede circa 30 minuti.
Questo script automatizza i passaggi seguenti:
- Nella cartella di lavoro
C:\aksedgeLearn
della macchina virtuale, lo script scarica l'archivio GitHub di Azure/AKS-Edge e lo estrae in una cartella AKS-Edge-main. - Richiama la funzione
Start-AideWorkflow
che esegue le attività seguenti:- Decomprime i file di installazione di Windows.
- Installa l'identità del servizio gestito di AKS Edge Essentials.
- Installa le funzionalità del sistema operativo host necessarie (
Install-AksEdgeHostFeatures
). - Distribuisce un singolo cluster K3S del computer con un nodo Linux e Windows.
L'esempio seguente con le ultime righe dell'output mostra che il download e l'installazione della distribuzione di AKS Edge Essentials K3S sono stati eseguiti correttamente. È anche possibile accedere al file di log in
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
- Nella cartella di lavoro
Suggerimento
Poiché il completamento del processo di installazione richiede circa 30 minuti, è possibile continuare con l'unità di apprendimento successiva, sarà possibile tornare a questo in un secondo momento.