Übung: Bereitstellen eines Azure Kubernetes Service-Clusters mit Azure CNI
Hinweis
Diese Übung ist optional. Wenn Sie die Schritte in dieser Übung ausführen möchten, müssen Sie zuvor ein Azure-Abonnement erstellen. Wenn Sie kein Azure-Konto besitzen oder gerade kein Konto erstellen möchten, können Sie die Anweisungen durchlesen und die dargelegten Informationen nachvollziehen.
In dieser Übung stellen Sie virtuelle Netzwerke, Subnetze und Identitäten und anschließend mithilfe des Azure Container Networking Interface (CNI)-Plug-Ins einen Azure Kubernetes Service (AKS)-Cluster bereit.
Sie haben der IT-Abteilung Ihres Unternehmens die Informationen weitergegeben, die Sie zu den Anwendungsanforderungen, zur VM-Dimensionierung und zur Netzwerkgröße gesammelt haben. Die IT-Abteilung hat einige Netzwerkadressbereiche bereitgestellt, die Sie für den Cluster verwenden können.
In der folgenden Tabelle sind die Anforderungen und die IP-Adressen aufgeführt, die von der IT-Abteilung bereitgestellt wurden:
Element | BESCHREIBUNG | IP-Adressen |
---|---|---|
AKS-Subnetz | IP-Adressen für die Knoten und Pods im Cluster. 248 verwendbare IP-Adressen erforderlich. | 10.150.20.0/24 |
Kubernetes-Dienstsubnetz | IP-Adressen, die im Cluster für Kubernetes-Dienste verwendet werden. Dürfen nicht mit anderen virtuellen Netzwerken oder lokalen Netzwerken in Konflikt stehen. | 10.240.0.0/24 |
IP-Adresse des DNS-Diensts (Domain Name System) | Muss sich im Kubernetes-Dienstsubnetz befinden, darf aber nicht die erste IP-Adresse aus dem verfügbaren Bereich sein. | 10.240.0.10 |
- Für das AKS-Subnetz haben Sie festgestellt, dass Sie 248 verwendbare IP-Adressen benötigen. Ihre IT-Abteilung hat Ihnen das Netzwerk 10.150.20.0/24 zugeteilt, das 251 verwendbare IP-Adressen enthält, nachdem Sie die fünf Adressen abgezogen haben, die Azure in jedem Subnetz reserviert.
- Das Kubernetes-Dienstsubnetz ist eine Gruppe von IP-Adressen, die nicht in anderen virtuellen Azure-Netzwerken verwendet werden und keinen Konflikt mit lokalen Netzwerkbereichen verursachen. Dieser Adressbereich wird immer nur innerhalb des jeweiligen Clusters verwendet. Ihre IT-Abteilung hat angegeben, dass Sie 10.240.0.0/24 verwenden sollen.
- Die IP-Adresse des DNS-Diensts ist eine einzelne IP-Adresse innerhalb des Adressbereichs des Kubernetes-Dienstsubnetzes, die aber nicht die erste IP-Adresse in diesem Bereich sein darf. Sie haben sich entschieden, 10.240.0.10 als DNS-IP-Adresse zu verwenden.
Erstellen des virtuellen Netzwerks und des Subnetzes
Für diese Übung erstellen Sie ein virtuelles Netzwerk und ein Subnetz. In einer realen Umgebung haben Sie möglicherweise ein Team in Ihrer IT-Abteilung, das für die Verwaltung von Netzwerken verantwortlich ist und diese Ressourcen für Sie erstellt.
Starten Sie Azure Cloud Shell.
Falls Sie noch nicht bei Ihrem Konto angemeldet sind, melden Sie beim Azure-Portal an.
az login
Wählen Sie eine Azure-Region in Ihrer Nähe aus, z. B. eastus. Speichern Sie den Wert in einer Umgebungsvariable, damit Sie ihn während der Übung verwenden können.
AKSLocation=eastus
Erstellen Sie mithilfe des Befehls
az group create
eine Ressourcengruppe (AKSLearn) für die Ressourcen in dieser Übung.az group create --location $AKSLocation --name AKSLearn
Erstellen Sie mit dem Befehl
az network vnet create
ein virtuelles Netzwerk (AKSVirtualNetwork).az network vnet create \ --name AKSVirtualNetwork \ --resource-group AKSLearn \ --address-prefixes 10.150.0.0/16 \ --location $AKSLocation
Erstellen Sie mit dem Befehl
az network vnet subnet create
das Subnetz AKSSubnet, und geben Sie den Adressbereich an, der von der IT-Abteilung angegeben wurde.az network vnet subnet create \ --resource-group AKSLearn \ --vnet-name AKSVirtualNetwork \ --name AKSSubnet \ --address-prefixes 10.150.20.0/24
Erstellen einer verwalteten Azure-Identität
Sie müssen eine verwaltete Azure-Identität für AKS erstellen, um auf Ressourcen in Ihrem Azure-Abonnement zuzugreifen. Die folgenden beiden Befehle erstellen eine verwaltete Azure-Identität und speichern ihren eindeutigen ID-Wert zur späteren Verwendung in einer Umgebungsvariable.
Erstellen Sie mithilfe des Befehls
az identity create
die verwaltete Azure-Identität AKSIdentity.az identity create \ --name AKSIdentity \ --resource-group AKSLearn
Rufen Sie die ID der verwalteten Identität mithilfe des Befehls
az identity show
ab, und speichern Sie sie zur späteren Verwendung in einer Umgebungsvariablen (identityId).identityId=$(az identity show \ --name AKSIdentity \ --resource-group AKSLearn \ --query id \ --output tsv)
Erstellen eines AKS-Clusters
Rufen Sie die Ressourcen-ID des Subnetzes mithilfe des Befehls
az network vnet subnet list
ab, und speichern Sie sie zur späteren Verwendung in einer Umgebungsvariablen (subnetId).subnetId=$(az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[?name=='AKSSubnet'].id" \ --output tsv)
Erstellen Sie mithilfe des Befehls
az aks create
einen AKS-Cluster (AKSCluster).az aks create \ --name AKSCluster \ --resource-group AKSLearn \ --location $AKSLocation \ --network-plugin azure \ --vnet-subnet-id $subnetId \ --service-cidr 10.240.0.0/24 \ --dns-service-ip 10.240.0.10 \ --generate-ssh-keys \ --enable-managed-identity \ --assign-identity $identityId \ --node-vm-size Standard_F8s_v2 \ --node-count 3
In der folgenden Tabelle sind die Parameter des Befehls
az aks create
beschrieben:Parameter Beschreibung --name
Name des Clusters, der erstellt wird --resource-group
Ressourcengruppe, in der der Cluster erstellt werden soll --location
Azure-Region, in der der Cluster erstellt werden soll --network-plugin
Gibt an, welches Netzwerk-Plug-In verwendet werden soll. --vnet-subnet-id
Gibt die Ressourcen-ID des zu verwendenden Subnetzes an. --service-cidr
Gibt den zu verwendenden Adressbereich des Kubernetes-Diensts an. --dns-service-ip
Gibt die zu verwendende DNS-IP-Adresse an. --generate-ssh-keys
Erstellt einen Satz von SSH-Schlüsseln zum Schutz der Knoten --enable-managed-identity
Ermöglicht die Verwendung einer verwalteten Azure-Identität für den Zugriff auf Ressourcen im Azure-Abonnement. --assign-identity
Gibt den ID-Wert der zu verwendenden verwalteten Azure-Identität an. --node-vm-size
Gibt die zu verwendende VM-Größe an. --node-count
Gibt die Anzahl der zu erstellenden Knoten an. Nachdem der Cluster erfolgreich bereitgestellt wurde, überprüfen Sie mithilfe des Befehls
az aks nodepool list
die Details des Knotenpools.az aks nodepool list \ --cluster-name AKSCluster \ --resource-group AKSLearn \ --output table
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
Name OsType VmSize Count MaxPods ProvisioningState Mode --------- -------- --------------- ------- --------- ------------------- ------ nodepool1 Linux Standard_F8s_v2 3 30 Succeeded System
In der Ausgabe können Sie sehen, dass drei Knoten vom Typ „Standard_F8s_v2“ und ein MaxPods-Wert von 30 vorhanden sind und dass der Knotenpoolmodus
System
lautet.
Bestätigen der IP-Adressverwendung für den Cluster
Überprüfen Sie mithilfe des Befehls
az network vnet subnet list
, wie viele IP-Adressen vom Cluster verwendet werden.az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[].ipConfigurations.length(@)" \ --output table
Dieser Befehl verwendet eine JMESPath-Abfragezeichenfolge, um zu bestimmen, wie viele
ipConfigurations
im Subnetz definiert sind. Die maximale Ausgabe sollte 93 sein. Sie haben für den Anfang drei Knoten bereitgestellt, sodass jeder Knoten über eine IP-Adresse verfügt. Für die maximale Anzahl von Pods haben Sie den Standardwert 30 verwendet, sodass jedem Knoten vorab 30 IP-Adressen zugeordnet sind, die von Pods verwendet werden können. Die Gesamtzahl der bisher zugeordneten IP-Adressen ist3 x nodes + (30 pods * 3 nodes) = 93
. Einige Adressen sind jedoch reserviert, sodass ihre Ausgabe weniger sein könnte.
Hinzufügen eines zusätzlichen Knotens zum Cluster
Sehen wir uns an, wie sich das Hochskalieren des Clusters und Hinzufügen eines weiteren Knotens auf die Nutzung der IP-Adressen auswirkt.
Skalieren Sie den Cluster hoch, und fügen Sie einen weiteren Knoten mithilfe des Befehls
az aks scale
hinzu.az aks scale \ --name AKSCluster \ --resource-group AKSLearn \ --node-count=4
Nachdem der Befehl erfolgreich ausgeführt wurde, überprüfen Sie die neuen Details des Knotenpools mithilfe des Befehls
az aks nodepool list
.az aks nodepool list \ --cluster-name AKSCluster \ --resource-group AKSLearn \ --output table
Die Ausgabe sollte der folgenden Beispielausgabe ähneln, die zeigt, dass Sie jetzt vier Knoten haben.
Name OsType VmSize Count MaxPods ProvisioningState Mode --------- -------- --------------- ------- --------- ------------------- ------ nodepool1 Linux Standard_F8s_v2 4 30 Succeeded System
Überprüfen Sie mithilfe des Befehls
az network vnet subnet list
, wie viele IP-Adressen nun vom Cluster verwendet werden.az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[].ipConfigurations.length(@)" \ --output table
Dieses Mal sollte das Ergebnis 124 lauten, also 31 mehr als beim letzten Mal. Das ist eine zusätzliche IP-Adresse für den neuen Knoten plus 30 zusätzliche IP-Adressen, die den Pods, die auf diesem Knoten ausgeführt werden, vorab zugeordnet sind. Einige Adressen sind jedoch reserviert, sodass ihre Ausgabe weniger sein könnte.