Exercice – Cluster AKS Edge Essentials avec Arc
Dans cet exercice, nous déployons AKS Edge Essentials dans un cluster K3S à une seule machine avec un nœud Linux et nous l’activons pour Arc. 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, puis le connecter à Azure Arc.
Créer les ressources nécessaires dans votre abonnement Azure
Cette unité fournit des commandes Azure CLI que vous pouvez exécuter avec un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez-en un gratuitement maintenant.
Important
Vous avez besoin d’un abonnement Azure avec le rôle Propriétaire ou avec une combinaison des rôles Contributeur et Administrateur de l’accès utilisateur. Vous pouvez vérifier votre niveau d’accès en accédant à votre abonnement dans le portail Azure, en sélectionnant Contrôle d’accès (IAM) du côté gauche du portail Azure, puis en sélectionnant Afficher mon accès. Pour plus d’informations, consultez Gérer des groupes de ressources Azure en utilisant le portail Azure.
Dans un autre onglet du navigateur, accédez au portail Azure.
Exécutez les commandes suivantes dans Cloud Shell pour configurer votre session et créer un groupe de ressources à utiliser pour cette unité. Remplacez la valeur de
<your-Azure-subscription-ID>
par la valeur de votre ID d’abonnement :resourcegroup="aksedge-training" location="westus3" subscriptionid="<your-Azure-subscription-ID>" az account set --subscription $subscriptionid az group create --name $resourcegroup --location $location
Créez un principal de service avec le rôle Propriétaire intégré et restreint à l’étendue du groupe de ressources. Ce principal de service est utilisé pour se connecter à Azure Arc. Utilisez la commande 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
Remarque
Notez la valeur de
Service Principal appId
et deService Principal password
. Vous en aurez besoin ultérieurement.Activez tous les fournisseurs de ressources nécessaires dans l’abonnement Azure en utilisant la commande 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
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.
Exécutez la commande suivante dans Cloud Shell afin de définir les variables pour la création de la machine virtuelle Azure et exécuter après cela le script PowerShell
AksEdgeQuickStart-v2.ps1
: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
Remarque
Notez la valeur de
Admin Password
,Subscription Name
,Subscription ID
,Tenant ID
etResource Group Name
. 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 \ --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
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/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": "" }
Exécutez la cmdlet PowerShell Get-AzRemoteDesktopFile afin d’obtenir 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.
Déployer un cluster AKS Edge Essentials avec Arc
Maintenant que la machine virtuelle est créée, exécutons le script PowerShell AksEdgeQuickStart-v2.ps1
pour déployer facilement AKS Edge Essentials et le connecter à Azure Arc.
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"
Téléchargez le programme d’installation d’AKS Edge Essentials K3S :
curl -L -o AksEdge-Learn.msi "https://aka.ms/aks-edge/k3s-msi"
Définissez les paramètres pour créer un cluster K3S à une seule machine avec un nœud Linux. Les fichiers
aideuser-config.json
etaksedge-config.json
sont utilisés pour exécuter le script PowerShellAksEdgeQuickStart-v2.ps1
. Remplacez les valeurs de[SUBSCRIPTION_NAME]
,[SUBSCRIPTION_ID]
,[TENANT_ID]
,[RESOURCE_GROUP_NAME]
,[SERVICE_PRINCIPAL_ID]
et[SERVICE_PRINCIPAL_PASSWORD]
par les valeurs que vous avez notées précédemment :$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"
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 10 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 :- 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.
- Appelle la fonction
Connect-AideArc
qui effectue les tâches suivantes :- Installe Azure Connected Machine Agent et connecte l’ordinateur hôte à Arc pour serveurs.
- Connecter le cluster déployé à Arc pour Kubernetes connecté.
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/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
- Dans le dossier de travail
Vérifiez que le déploiement a réussi en exécutant la commande suivante :
kubectl get nodes -o wide kubectl get pods -A -o wide
L’exemple de capture d’écran suivant montre que le nœud Linux est prêt et que les pods sont en cours d’exécution :
Afficher votre cluster dans le portail Azure
Vous pouvez voir votre cluster dans le portail Azure si vous accédez au groupe de ressources
aksedge-training
, puis que vous sélectionnez la ressourcemyVM-k3s
Kubernetes – Azure Arc.Dans le volet gauche, sélectionnez l’option Espaces de noms sous Ressources Kubernetes (préversion).
Vous devez vous connecter en utilisant un jeton du porteur pour voir les ressources Kubernetes. Pour obtenir le jeton, exécutez la commande suivante dans la ligne de commande PowerShell de la machine virtuelle :
Get-AksEdgeManagedServiceToken
Vous pouvez maintenant voir les ressources sur votre cluster. Le volet Charges de travail montre les pods en cours d’exécution sur votre cluster.