Tutorial: Bereitstellen eines Workloadclusters unter Azure Kubernetes Service in Azure Stack HCI und Windows Server

Kubernetes bietet eine verteilte Plattform für containerbasierte Anwendungen. In diesem Tutorial (Teil 3 von 7) wird ein Cluster von Azure Kubernetes Service (AKS) in Azure Stack HCI und Windows Server in AKS in Azure Stack HCI und Windows Server bereitgestellt. Sie lernen Folgendes:

  • Bereitstellen eines Clusters vom Typ „AKS in Azure Stack HCI“
  • Installieren der Kubernetes-Befehlszeilenschnittstelle (kubectl)
  • Konfigurieren von kubectl für die Verbindungsherstellung mit Ihrem Workloadcluster

In nachfolgenden Tutorials wird die Anwendung Azure Vote im Cluster bereitgestellt, skaliert und aktualisiert.

Voraussetzungen

In vorherigen Tutorials wurde ein Containerimage erstellt und in eine Azure Container Registry-Instanz hochgeladen. Wenn Sie diese Schritte nicht ausgeführt haben, beginnen Sie mit Tutorial 1: Erstellen von Containerimages.

In diesem Tutorial wird das PowerShell-Modul „AksHci“ verwendet.

Auf allen Knoten in Ihrem Azure Stack HCI- oder Windows Server-Cluster

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 Azure Stack HCI- oder Windows Server-Cluster aus:

Install-PackageProvider -Name NuGet -Force 
Install-Module -Name PowershellGet -Force -Confirm:$false -SkipPublisherCheck
Exit

Sie müssen alle vorhandenen PowerShell-Fenster erneut schließen, um sicherzustellen, dass geladene Module aktualisiert werden. Fahren Sie erst mit dem nächsten Schritt fort, wenn Sie alle geöffneten PowerShell-Fenster geschlossen haben.

Installieren Sie das PowerShell-Modul für AKS-HCI, indem Sie den folgenden Befehl auf allen Knoten in Ihrem Azure Stack HCI- oder Windows Server-Cluster ausführen:

Install-Module -Name AksHci -Repository PSGallery
Exit

Sie müssen alle vorhandenen PowerShell-Fenster erneut schließen, um sicherzustellen, dass geladene Module aktualisiert werden. Fahren Sie erst mit dem nächsten Schritt fort, wenn Sie alle geöffneten PowerShell-Fenster geschlossen haben.

Sie können ein Hilfsskript zum Löschen alter PowerShell-Module für AKS-HCI verwenden, um Probleme mit der PowerShell-Version bei der Bereitstellung von AKS zu vermeiden.

Überprüfen Ihrer Installation

Get-Command -Module AksHci

Die vollständige Liste der AksHci-PowerShell-Befehle finden Sie unter PowerShell-Modul „AksHci“.

Installieren des Azure Kubernetes Service-Hosts

Als Erstes müssen Sie Ihre Registrierungseinstellungen konfigurieren.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Sie müssen diese Werte gemäß Ihrem Azure-Abonnement und Ressourcengruppennamen anpassen.

Führen Sie anschließend den folgenden Befehl aus, um sicherzustellen, dass auf jedem physischen Knoten alle Anforderungen für die Installation von Azure Kubernetes Service in Azure Stack HCI erfüllt sind.

Initialize-AksHciNode

Als Nächstes erstellen wir ein virtuelles Netzwerk. Sie müssen die Namen Ihrer verfügbaren externen Switches abrufen:

Get-VMSwitch

Beispielausgabe:

Name        SwitchType    NetAdapterInterfaceDescription
----        ----------    ------------------------------
extSwitch   External      Mellanox ConnectX-3 Pro Ethernet Adapter

Führen Sie den folgenden Befehl aus, um ein virtuelles Netzwerk mit einer statischen IP-Adresse zu erstellen.

$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -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

Konfigurieren Sie Ihre Bereitstellung dann mit dem folgenden Befehl.

Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" 

Sie können nun den Host von AKS in Azure Stack HCI und Windows Server installieren.

Install-AksHCi

Erstellen eines Kubernetes-Clusters

Erstellen Sie mit dem Befehl New-AksHciCluster einen Kubernetes-Cluster. Im folgenden Beispiel wird ein Cluster mit dem Namen mycluster mit dem Linux-Knotenpool linuxnodepool und einer Knotenanzahl von 1 erstellt.

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Bereitstellung erfolgreich war.

Get-AksHcicluster -name mycluster

Ausgabe:

ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

Hinweis

Wenn Sie die neuen Parameter in New-AksHciCluster zum Bereitstellen eines Clusters verwenden und dann Get-AksHciCluster ausführen, um die Clusterinformationen abzurufen, wird in den Feldern WindowsNodeCount und LinuxNodeCount in der Ausgabe 0 zurückgegeben. Um die genaue Anzahl von Knoten in jedem Knotenpool zu erhalten, verwenden Sie den Befehl Get-AksHciNodePool mit dem angegebenen Clusternamen.

Führen Sie den folgenden PowerShell-Befehl Get-AksHciNodePool aus, um eine Liste der Knotenpools im Cluster abzurufen.

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Installieren der Kubernetes-Befehlszeilenschnittstelle

Zum Herstellen der Verbindung mit dem Kubernetes-Cluster auf Ihrem lokalen Computer verwenden Sie den Kubernetes-Befehlszeilenclient kubectl.

Herstellen einer Verbindung mit dem Cluster mithilfe von „kubectl“

Verwenden Sie den Befehl Get-AksHciCredential, um kubectl für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster zu konfigurieren. Im folgenden Beispiel werden Anmeldeinformationen für den Cluster mit dem Namen mycluster abgerufen.

Get-AksHciCredential -name mycluster

Überprüfen Sie die Verbindung mit Ihrem Cluster mithilfe des Befehls kubectl get nodes, um eine Liste der Clusterknoten zu erhalten:

kubectl get nodes

Ausgabe:

NAME              STATUS   ROLES                  AGE     VERSION
moc-lbs6got5dqo   Ready    <none>                 6d20h   v1.20.7
moc-lel7tzxdt30   Ready    control-plane,master   6d20h   v1.20.7

Nächste Schritte

In diesem Tutorial wurde ein Kubernetes-Cluster in AKS bereitgestellt, und Sie haben kubectl für die Verbindung damit konfiguriert. Sie haben Folgendes gelernt:

  • Bereitstellen eines Clusters vom Typ „AKS in Azure Stack HCI“
  • Installieren der Kubernetes-Befehlszeilenschnittstelle (kubectl)
  • Konfigurieren von „kubectl“ für die Verbindung mit Ihrem AKS-Cluster

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie eine Anwendung im Cluster bereitgestellt wird.