Einrichten eines Azure Kubernetes-Diensthosts auf Azure Local und Windows Server und Bereitstellen eines Workloadclusters mithilfe von PowerShell
Gilt für: Azure Local or Windows Server Datacenter
Diese Schnellstartanleitung führt Sie durch das Einrichten eines Azure Kubernetes Service (AKS)-Hosts. Sie erstellen Kubernetes-Cluster auf Azure Local und Windows Server mithilfe von PowerShell. Falls Sie stattdessen Windows Admin Center verwenden möchten, finden Sie weitere Informationen unter Schnellstart: Einrichten eines Azure Kubernetes Service-Hosts für Azure Stack HCI mit PowerShell.
Hinweis
- Wenn Sie über vorab bereitgestellte Clusterdienstobjekte und DNS-Einträge verfügen, finden Sie weitere Informationen im Artikel zum Bereitstellen eines AKS-Hosts mit vorab bereitgestellten Clusterdienstobjekten und DNS-Einträgen mit PowerShell.
- Wenn Sie einen Proxyserver haben, finden Sie Informationen unter Einrichten eines AKS-Hosts und Bereitstellen eines Workloadclusters mithilfe von PowerShell und eines Proxyservers.
- Die Installation von AKS auf Azure Local nach dem Einrichten von Arc-VMs wird nicht unterstützt. Weitere Informationen finden Sie unter bekannten Problemen mit Arc-VMs. Wenn Sie AKS auf Azure Local installieren möchten, müssen Sie arc Resource Bridge deinstallieren und dann AKS auf Azure Local installieren. Sie können eine neue Arc Resource Bridge erneut bereitstellen, nachdem Sie AKS bereinigt und installiert haben, aber sie merkt sich nicht die zuvor erstellten VM-Entitäten.
Voraussetzungen
- Vergewissern Sie sich, dass Sie alle Voraussetzungen in den Systemanforderungen erfüllt sind.
- Verwenden Sie ein Azure-Konto zum Registrieren Ihres AKS-Hosts für die Abrechnung. Weitere Informationen finden Sie in den Azure-Anforderungen.
Installieren des PowerShell-Moduls „AksHci“
Führen Sie die folgenden Schritte auf allen Knoten in Ihrem lokalen Azure-Cluster oder Windows Server-Cluster aus:
Hinweis
Wenn Sie Remote-PowerShell verwenden, müssen Sie CredSSP verwenden.
Schließen Sie alle geöffneten PowerShell-Fenster, öffnen Sie eine neue PowerShell-Sitzung als Administrator, und führen Sie den folgenden Befehl auf allen Knoten in Ihrem lokalen Azure- oder Windows Server-Cluster aus:
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
Sie müssen alle vorhandenen PowerShell-Fenster erneut schließen, um sicherzustellen, dass geladene Module aktualisiert werden. Fahren Sie nicht mit dem nächsten Schritt fort, bis Sie alle geöffneten PowerShell-Fenster schließen.
Installieren Sie das AKS-HCI PowerShell-Modul, indem Sie den folgenden Befehl auf allen Knoten in Ihrem lokalen Azure- oder Windows Server-Cluster ausführen:
Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
Sie müssen alle vorhandenen PowerShell-Fenster erneut schließen, um sicherzustellen, dass geladene Module aktualisiert werden. Fahren Sie nicht mit dem nächsten Schritt fort, bis Sie alle geöffneten PowerShell-Fenster schließen.
Sie können ein Hilfsskript verwenden, um alte AKS-HCI PowerShell-Module zu löschen, um Probleme im Zusammenhang mit der PowerShell-Version in Ihrer AKS-Bereitstellung zu vermeiden.
Überprüfen Ihrer Installation
Get-Command -Module AksHci
Die vollständige Liste der AksHci-PowerShell-Befehle finden Sie unter PowerShell-Modul „AksHci“.
Registrieren des Ressourcenanbieters bei Ihrem Abonnement
Aktivieren Sie vor dem Registrierungsprozess den entsprechenden Ressourcenanbieter in Azure für AKS, der von der Arc-Registrierung aktiviert ist. Führen Sie dazu die folgenden PowerShell-Befehle aus:
Um sich bei Azure anzumelden, führen Sie den Befehl Connect-AzAccount PowerShell aus:
Connect-AzAccount
Wenn Sie zu einem anderen Abonnement wechseln möchten, führen Sie den PowerShell-Befehl Set-AzContext aus:
Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"
Führen Sie die folgenden Befehle aus, um Ihr Azure-Abonnement bei Azure Arc-aktivierten Kubernetes-Ressourcenanbietern zu registrieren. Dieser Registrierungsprozess kann bis zu 10 Minuten dauern, muss aber nur einmal für ein bestimmtes Abonnement ausgeführt werden:
Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation
Führen Sie die folgenden PowerShell-Befehle aus, um den Registrierungsprozess zu überprüfen:
Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation
Schritt 1: Vorbereiten ihrer Computer für die Bereitstellung
Führen Sie Überprüfungen für jeden physischen Knoten aus, um festzustellen, ob alle Anforderungen für die Installation von AKS, die von Arc aktiviert sind, erfüllt sind. Öffnen Sie PowerShell als Administrator, und führen Sie den folgenden Befehl Initialize-AksHciNode auf allen Knoten in Ihrem lokalen Azure- und Windows Server-Cluster aus:
Initialize-AksHciNode
Schritt 2: Erstellen eines virtuellen Netzwerks
Führen Sie die folgenden Befehle auf einem beliebigen Knoten in Ihrem lokalen Azure- und Windows Server-Cluster aus.
Führen Sie den folgenden Befehl aus, um die Namen der verfügbaren Switches zu ermitteln. Stellen Sie sicher, dass der SwitchType
Vm-Switch "Extern" lautet:
Get-VMSwitch
Beispielausgabe:
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
extSwitch External Mellanox ConnectX-3 Pro Ethernet Adapter
Um ein virtuelles Netzwerk zu erstellen, das die Knoten in Ihrer Bereitstellung verwenden sollen, erstellen Sie eine Umgebungsvariable mit dem PowerShell-Befehl New-AksHciNetworkSetting. Dieses virtuelle Netzwerk wird später verwendet, um eine Bereitstellung zu konfigurieren, die statische IP verwendet. Wenn Sie Ihre AKS-Bereitstellung mit DHCP konfigurieren möchten, finden Sie beispiele unter New-AksHciNetworkSetting . Sie können auch einige Konzepte für Netzwerkknoten überprüfen.
#static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9
Hinweis
Sie müssen die werte anpassen, die in diesem Beispielbefehl für Ihre Umgebung angezeigt werden.
Schritt 3: Konfigurieren der Bereitstellung
Führen Sie die folgenden Befehle auf einem beliebigen Knoten in Ihrem lokalen Azure- und Windows Server-Cluster aus.
Verwenden Sie den Befehl Set-AksHciConfig, um die Konfigurationseinstellungen für den AKS-Host zu erstellen. Sie müssen die Parameter imageDir
, workingDir
und cloudConfigLocation
angeben. Um Ihre Konfigurationsdetails zurückzusetzen, führen Sie den Befehl erneut mit neuen Parametern aus.
Konfigurieren Sie Ihre Bereitstellung mit dem folgenden Befehl:
$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet
Hinweis
Sie müssen die werte anpassen, die in diesem Beispielbefehl für Ihre Umgebung angezeigt werden.
Schritt 4: Anmelden bei Azure und Konfigurieren von Registrierungseinstellungen
Option 1: Verwenden Ihres Microsoft Entra-Kontos, wenn Sie über "Besitzer"-Berechtigungen verfügen
Führen Sie den folgenden Set-AksHciRegistration PowerShell-Befehl mit Ihrem Abonnement- und Ressourcengruppennamen aus, um sich bei Azure anzumelden. Sie müssen über ein Azure-Abonnement und eine vorhandene Azure-Ressourcengruppe in den Azure-Regionen Australien Ost, Ost-USA, Südostasien oder Westeuropa verfügen:
Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"
Option 2: Verwenden eines Azure-Dienstprinzipals
Wenn Sie keinen Zugriff auf ein Abonnement haben, für das Sie "Besitzer" sind, können Sie Ihren AKS-Host für die Abrechnung mit einem Dienstprinzipal bei Azure registrieren. Weitere Informationen zur Verwendung eines Dienstprinzipals finden Sie unter registrieren AKS unter Azure Local and Windows Server using a service principal.
Schritt 5: Starten einer neuen Bereitstellung
Führen Sie den folgenden Befehl auf einem beliebigen Knoten in Ihrem lokalen Azure- oder Windows Server-Cluster aus.
Nachdem Sie die Bereitstellung konfiguriert haben, müssen Sie sie starten, um die AKS-Agents/-Dienste und den AKS-Host zu installieren. Führen Sie zum Starten der Bereitstellung den folgenden Befehl aus:
Tipp
Wenn Sie während der Installation weitere Statusdetails anzeigen möchten, legen Sie diese Einstellung fest $VerbosePreference = "Continue"
, bevor Sie fortfahren.
Install-AksHci
Warnung
Während der Installation Ihres AKS-Hosts wird ein Kubernetes - Azure Arc-Ressourcentyp in der Ressourcengruppe erstellt, die während der Registrierung festgelegt ist. Löschen Sie diese Ressource nicht, da sie Ihren AKS-Host darstellt. Sie können die Ressource ermitteln, indem Sie überprüfen, ob das zugehörige Verteilungsfeld den Wert aks_management
aufweist. Wenn Sie diese Ressource löschen, führt sie zu einer out-of-policy-Bereitstellung.
Schritt 6: Erstellen eines Kubernetes-Clusters
Nachdem Sie Ihren AKS-Host installiert haben, können Sie einen Kubernetes-Cluster bereitstellen. Öffnen Sie PowerShell als Administrator, und führen Sie den folgenden New-AksHciCluster-Befehl aus. Dieser Beispielbefehl erstellt einen neuen Kubernetes-Cluster mit einem Linux-Knotenpool linuxnodepool
mit einer Knotenanzahl von 1.
Weitere Informationen zu Knotenpools finden Sie unter Verwenden von Knotenpools in AKS.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType Linux
Überprüfen Ihrer bereitgestellten Cluster
Um eine Liste Ihrer bereitgestellten Kubernetes-Cluster abzurufen, führen Sie den folgenden Get-AksHciCluster PowerShell-Befehl aus:
Get-AksHciCluster
ProvisioningState : provisioned
KubernetesVersion : v1.20.7
NodePools : linuxnodepool
WindowsNodeCount : 0
LinuxNodeCount : 0
ControlPlaneNodeCount : 1
Name : mycluster
Um eine Liste der Knotenpools im Cluster abzurufen, führen Sie den folgenden Get-AksHciNodePool PowerShell-Befehl aus:
Get-AksHciNodePool -clusterName mycluster
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Schritt 7: Verbinden Ihres Clusters mit Arc-fähigen Kubernetes
Verbinden Sie Ihren Cluster mit Arc-fähigen Kubernetes, indem Sie den Befehl "Enable-AksHciArcConnection " ausführen. Im folgenden Beispiel wird Ihr Kubernetes-Cluster mithilfe der Abonnement- und Ressourcengruppendetails, die Set-AksHciRegistration
Sie im Befehl übergeben haben, mit Arc verbunden:
Connect-AzAccount
Enable-AksHciArcConnection -name mycluster
Hinweis
Wenn während des Installationsvorgangs Probleme oder Fehlermeldungen auftreten, finden Sie weitere Informationen unter Bekannte Probleme und Fehler bei der Installation.
Skalieren eines Kubernetes-Clusters
Wenn Sie Ihren Cluster hoch- oder herunterskalieren müssen, können Sie die Anzahl der Knoten auf Steuerungsebene ändern, indem Sie den Befehl Set-AksHciCluster verwenden. Um die Anzahl der Linux- oder Windows-Workerknoten in Ihrem Knotenpool zu ändern, verwenden Sie den Befehl Set-AksHciNodePool.
Führen Sie zum Skalieren von Knoten auf Steuerungsebene folgenden Befehl aus:
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Führen Sie zum Skalieren der Workerknoten in Ihrem Knotenpool den folgenden Befehl aus:
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Hinweis
In früheren Versionen von AKS auf Azure Local und Windows Server wurde der Befehl "Set-AksHciCluster " auch zum Skalieren von Arbeitsknoten verwendet. Da AKS nun Knotenpools in Workloadclustern einführt, können Sie diesen Befehl nur verwenden, um Arbeitsknoten zu skalieren, wenn Ihr Cluster mit dem alten Parameter in New-AksHciCluster erstellt wurde.
Verwenden Sie zum Skalieren von Workerknoten in einem Knotenpool den Befehl Set-AksHciNodePool.
Zugreifen auf Ihre Cluster mit kubectl
Führen Sie den PowerShell-Befehl Get-AksHciCredential aus, um mit kubectl auf Ihre Kubernetes-Cluster zuzugreifen. Hierbei wird die kubeconfig-Datei des angegebenen Clusters als kubeconfig-Standarddatei für kubectl verwendet. Sie können kubectl auch zum Bereitstellen von Anwendungen mit Helm verwenden:
Get-AksHciCredential -name mycluster
Löschen eines Kubernetes-Clusters
Führen Sie den folgenden Befehl aus, um einen Kubernetes-Cluster zu löschen:
Remove-AksHciCluster -name mycluster
Hinweis
Stellen Sie sicher, dass Ihr Cluster gelöscht wird, indem Sie sich die vorhandenen virtuellen Computer im Hyper-V-Manager ansehen. Wenn die VMs nicht gelöscht werden, können Sie sie manuell löschen. Führen Sie anschließend den Befehl Restart-Service wssdagent
aus. Führen Sie diesen Befehl auf jedem Knoten im Failovercluster aus.
Abrufen von Protokollen
Führen Sie den Get-AksHciLogs-Befehl aus, um die Protokolle Ihrer gesamten Pods zu erhalten. Mit diesem Befehl wird ein komprimierter Ausgabeordner erstellt, der in Ihrem Arbeitsverzeichnis aufgerufen wird akshcilogs.zip
. Der vollständige Pfad zum akshcilogs.zip
Ordner ist die Ausgabe nach dem Ausführen des folgenden Befehls:
Get-AksHciLogs
In dieser Schnellstartanleitung haben Sie erfahren, wie Sie einen AKS-Host einrichten und Kubernetes-Cluster mithilfe von PowerShell erstellen. Außerdem haben Sie erfahren, wie Sie PowerShell verwenden, um einen Kubernetes-Cluster zu skalieren und mit kubectl
auf Cluster zuzugreifen.