Übung: Aktivieren von Arc für einen AKS Edge Essentials-Cluster
In dieser Übung stellen Sie AKS Edge Essentials in einem K3S-Cluster mit einem einzelnen Computer und einem Linux-Knoten bereit und aktivieren Arc dafür. Sie verwenden Azure Cloud Shell, um eine Azure-VM mit Windows 11 Enterprise zu erstellen, ein PowerShell-Skript für die einfache Bereitstellung von AKS Edge Essentials auszuführen und dann eine Verbindung mit Azure Arc herzustellen.
Erstellen der erforderlichen Ressourcen in Ihrem Azure-Abonnement
Diese Lerneinheit enthält Azure CLI-Befehle, die Sie mit einem Azure-Abonnement ausführen können. Falls Sie noch nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
Wichtig
Sie benötigen ein Azure-Abonnement, das entweder über die Rolle Besitzer oder über eine Kombination der Rollten Mitwirkender und Benutzerzugriffsadministrator verfügt. Sie können Ihre Zugriffsebene überprüfen, indem Sie im Azure-Portal zu Ihrem Abonnement navigieren, Zugriffssteuerung (IAM) auf der linken Seite des Azure-Portals auswählen und dann Meinen Zugriff anzeigen auswählen. Weitere Informationen finden Sie im Artikel zum Verwalten von Azure-Ressourcengruppen über das Azure-Portal.
Navigieren Sie auf einer anderen Registerkarte des Browsers zu Azure Cloud Shell.
Führen Sie die folgenden Befehle in Cloud Shell aus, um Ihre Sitzung einzurichten und eine Ressourcengruppe zu erstellen, die für diese Lerneinheit verwendet werden soll. Ersetzen Sie den Wert
<your-Azure-subscription-ID>
durch den ID-Wert für Ihr Azure-Abonnement:resourcegroup="aksedge-training" location="westus3" subscriptionid="<your-Azure-subscription-ID>" az account set --subscription $subscriptionid az group create --name $resourcegroup --location $location
Erstellen Sie einen neuen Dienstprinzipal mit der integrierten Rolle Besitzer und beschränkt auf den Ressourcengruppenbereich. Dieser Dienstprinzipal wird verwendet, um eine Verbindung mit Azure Arc herzustellen. Verwenden Sie den Befehl 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
Hinweis
Notieren Sie sich die Werte für
Service Principal appId
undService Principal password
. Sie benötigen sie später.Aktivieren Sie alle erforderlichen Ressourcenanbieter im Azure-Abonnement mithilfe des Befehls 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
Erstellen einer Azure-VM mit Windows 11 Enterprise
Erstellen Sie nun mithilfe von Azure Cloud Shell die Azure-VM mit Windows 11 Enterprise.
Führen Sie den folgenden Befehl in Cloud Shell aus, um die Variablen zum Erstellen der Azure-VM festzulegen und später das PowerShell-Skript
AksEdgeQuickStart-v2.ps1
auszuführen: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
Hinweis
Notieren Sie sich die Werte für
Admin Password
,Subscription Name
,Subscription ID
,Tenant ID
undResource Group Name
. Sie benötigen sie später.Erstellen Sie die Azure-VM mit Windows 11 Enterprise mithilfe des Befehls 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
Das Erstellen des virtuellen Computers und der unterstützenden Ressourcen dauert einige Minuten. In der folgenden Beispielausgabe wird angezeigt, dass der Vorgang der VM-Erstellung erfolgreich war.
{ "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": "" }
Führen Sie das PowerShell-Cmdlet Get-AzRemoteDesktopFile aus, um die RDP-Datei abzurufen und eine Verbindung mit der VM herzustellen:
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
Laden Sie die RDP-Datei auf Ihren lokalen Computer herunter:
download myvm.rdp
Öffnen Sie die RDP-Datei, und stellen Sie eine Verbindung mit der VM her. Verwenden Sie dabei azureuser als Benutzer und den zuvor notierten Wert für
Admin Password
als Kennwort.
Tipp
Wenn Sie sich zum ersten Mal bei der Azure-VM unter Windows 11 Enterprise anmelden, können Sie alle Optionen akzeptieren, indem Sie auf Weiter und Akzeptieren klicken.
Bereitstellen von AKS Edge Essentials und Aktivieren von Arc
Die VM wurde erstellt. Führen Sie nun das PowerShell-Skript AksEdgeQuickStart-v2.ps1
für die einfache Bereitstellung von AKS Edge Essentials aus, und stellen Sie eine Verbindung mit Azure Arc her.
Hinweis
Die folgenden Befehle werden in der PowerShell-Befehlszeile der VM ausgeführt.
Öffnen Sie die PowerShell-Befehlszeile, indem Sie auf das Menü Start klicken und PowerShell eingeben. Führen Sie dann den folgenden Befehl aus, um das Arbeitsverzeichnis in
C:\aksedgeLearn
zu ändern:if (!(Test-Path -Path "C:\aksedgeLearn")) { New-Item -ItemType Directory -Path "C:\aksedgeLearn" | Out-Null } Push-Location "C:\aksedgeLearn"
Laden Sie das Installationsprogramm für AKS Edge Essentials K3s herunter:
curl -L -o AksEdge-Learn.msi "https://aka.ms/aks-edge/k3s-msi"
Legen Sie die Parameter fest, um einen K3S-Cluster mit einem einzelnen Computer und einem Linux-Knoten zu erstellen. Die Dateien
aideuser-config.json
undaksedge-config.json
werden zum Ausführen des PowerShell-SkriptsAksEdgeQuickStart-v2.ps1
verwendet. Ersetzen Sie die Werte[SUBSCRIPTION_NAME]
,[SUBSCRIPTION_ID]
,[TENANT_ID]
,[RESOURCE_GROUP_NAME]
,[SERVICE_PRINCIPAL_ID]
und[SERVICE_PRINCIPAL_PASSWORD]
durch die Werte, die Sie zuvor notiert haben:$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"
Laden Sie das PowerShell-Skript
AksEdgeQuickStart-v2.ps1
herunter, und führen Sie es aus:$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
Hinweis
Der Installationsprozess dauert etwa 10 Minuten.
Dieses Skript automatisiert die folgenden Schritte:
- Im VM-Arbeitsordner
C:\aksedgeLearn
lädt das Skript das GitHub-Archiv von Azure/AKS-Edge herunter und entpackt es im Ordner AKS-Edge-main. - Ruft die Funktion
Start-AideWorkflow
auf, die die folgenden Aufgaben ausführt:- Installieren der MSI-Datei für AKS Edge Essentials
- Installieren der erforderlichen Hostbetriebssystemfeatures (
Install-AksEdgeHostFeatures
) - Bereitstellen eines K3S-Clusters mit einem einzelnen Computer und einem Linux-Knoten
- Ruft die Funktion
Connect-AideArc
auf, die die folgenden Aufgaben ausführt:- Installieren des Azure Connected Machine-Agents und Verbinden des Hostcomputers mit Arc für Servers
- Verbinden des bereitgestellten Clusters mit Arc für verbundene Kubernetes-Instanzen
Das folgende Beispiel mit den letzten Zeilen der Ausgabe zeigt, dass der Download und die Installation der AKS Edge Essentials K3s-Distribution erfolgreich waren. Sie können auf die Protokolldatei auch unter
C:\aksedgeLearn\aksedgedlog-yymmdd-hhmm.txt
zugreifen.... [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
- Im VM-Arbeitsordner
Vergewissern Sie sich, dass die Bereitstellung erfolgreich war, indem Sie den folgenden Befehl ausführen:
kubectl get nodes -o wide kubectl get pods -A -o wide
Der folgende Beispielscreenshot zeigt, dass der Linux-Knoten bereit ist und die Pods ausgeführt werden:
Anzeigen des Clusters im Azure-Portal
Sie können Ihren Cluster im Azure-Portal anzeigen, wenn Sie zur Ressourcengruppe
aksedge-training
navigieren und dannmyVM-k3s
Kubernetes – Azure Arc auswählen.Wählen Sie im linken Bereich die Option Namespaces unter Kubernetes-Ressourcen (Vorschau) aus.
Sie müssen sich mit einem Bearertoken anmelden, um die Kubernetes-Ressourcen anzuzeigen. Führen Sie zum Abrufen des Tokens den folgenden Befehl in der PowerShell-Befehlszeile der VM aus:
Get-AksEdgeManagedServiceToken
Jetzt können Sie Ressourcen in Ihrem Cluster anzeigen. Unter Workloads werden die Pods angezeigt, die in Ihrem Cluster ausgeführt werden.