Exercice – Déployer un cluster K3S à une seule machine AKS Edge Essentials
Dans cet exercice, nous déployons AKS Edge Essentials dans un seul cluster K3S à une seule machine avec un nœud Linux et Windows. Nous utilisons Azure Cloud Shell pour créer une machine virtuelle Azure avec Windows 11 Entreprise et exécuter un script PowerShell pour faciliter le déploiement d’AKS Edge Essentials.
Créer une machine virtuelle Azure avec Windows 11 Entreprise
Créons la machine virtuelle Azure avec Windows 11 Entreprise en utilisant Azure Cloud Shell.
Commencez par activer le bac à sable Azure.
Exécutez la commande suivante dans Azure Cloud Shell pour définir les variables de création de la machine virtuelle Azure :
resourcegroup="<rgn>[resource group name]</rgn>" vmname="myVM" username="azureuser" let "randomIdentifier=$RANDOM*$RANDOM" adminpassword="Admin-$randomIdentifier-Password!" echo Admin Password: $adminpassword
Remarque
Prenez note de la valeur de
Admin Password
. Vous en aurez besoin ultérieurement.Créez la machine virtuelle Azure avec Windows 11 Entreprise en utilisant la commande 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 création de la machine virtuelle et des ressources de support ne nécessite que quelques minutes. L’exemple de sortie suivant illustre la réussite de l’opération de création d’une machine virtuelle.
{ "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": "" }
Télécharger AKS Edge Essentials
Téléchargeons le programme d’installation K3s et les fichiers de nœuds Windows vers le partage de fichiers Azure, puis montons-le dans la machine virtuelle afin de pouvoir y accéder à l’aide du lecteur avec la lettre Z.
Prenez note du nom du compte de stockage, de la clé et du nom du partage de fichiers Azure. Vous en aurez besoin ultérieurement :
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
Téléchargez le programme d’installation K3s, les fichiers de nœuds Windows et les certificats vers le partage de fichiers 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"
Créez le fichier RDP pour vous connecter à la machine virtuelle :
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
Téléchargez le fichier RDP sur votre machine locale :
download myvm.rdp
Ouvrez le fichier RDP et connectez-vous à la machine virtuelle en utilisant azureuser comme utilisateur, et le
Admin Password
dont vous avez pris note auparavant comme mot de passe.Conseil
Quand vous vous connectez pour la première fois à la machine virtuelle Azure Windows 11 Entreprise, vous pouvez accepter toutes les options en cliquant sur Suivant, puis sur Accepter.
Remarque
Les commandes suivantes sont exécutées dans la ligne de commande PowerShell de la machine virtuelle.
Ouvrez la ligne de commande PowerShell en cliquant sur le menu Démarrer, puis en tapant PowerShell.
Exécutez les commandes PowerShell suivantes pour monter le partage de fichiers Azure dans la machine virtuelle avec la lettre Z. Remplacez les valeurs de
[YOUR_STORAGE_ACCOUNT_NAME]
,[YOUR_STORAGE_ACCOUNT_KEY]
et[YOUR_STORAGE_ACCOUNT_FILE]
par celles que vous avez notées précédemment :$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
Déployer AKS Edge Essentials
Maintenant que la machine virtuelle a été créée et que les fichiers d’installation ont été téléchargés, exécutons le script PowerShell AksEdgeQuickStart-v2.ps1
pour faciliter le déploiement d’AKS Edge Essentials.
Remarque
Les commandes suivantes sont exécutées dans la ligne de commande PowerShell de la machine virtuelle.
Ouvrez la ligne de commande PowerShell en cliquant sur le menu Démarrer, puis en tapant PowerShell. Exécutez ensuite la commande suivante pour faire passer le répertoire actif sur
C:\aksedgeLearn
:if (!(Test-Path -Path "C:\aksedgeLearn")) { New-Item -ItemType Directory -Path "C:\aksedgeLearn" | Out-Null } Push-Location "C:\aksedgeLearn"
Installez des certificats Windows :
certutil.exe -addstore -f "AuthRoot" "Z:\\MicrosoftRootCertificateAuthority2011.cer" certutil.exe -addstore -f "CA" "Z:\\MicCodSigPCA2011.crt"
Définissez les paramètres pour créer un cluster K3S à une seule machine avec un nœud Linux et Windows. Les fichiers
aideuser-config.json
etaksedge-config.json
sont utilisés pour exécuter le script 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"
Téléchargez et exécutez le script 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
Remarque
Le processus d’installation prend environ 30 minutes.
Ce script automatise les étapes suivantes :
- Dans le dossier de travail
C:\aksedgeLearn
de la machine virtuelle, le script télécharge l’archive GitHub de Azure/AKS-Edge et la décompresse dans un dossier AKS-Edge-main. - Appelle la fonction
Start-AideWorkflow
qui effectue les tâches suivantes :- Décompresse les fichiers d’installation Windows.
- Installe le fichier MSI d’AKS Edge Essentials.
- Installe les fonctionnalités requises du système d’exploitation hôte (
Install-AksEdgeHostFeatures
). - Déploie un cluster K3S à une seule machine avec un nœud Linux et Windows.
L’exemple suivant avec les dernières lignes de la sortie montre que le téléchargement et l’installation de la distribution K3S d’AKS Edge Essentials ont été effectués correctement. Vous pouvez également accéder au fichier journal ici :
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
- Dans le dossier de travail
Conseil
Étant donné que le processus d’installation prend environ 30 minutes, vous pouvez passer à l’unité d’apprentissage suivante. Nous reviendrons plus tard sur ce point.