Tutorial: Virtuelle Knoten auf Azure Container Instances in Ihrem Azure Kubernetes Service-Cluster bereitstellen

In diesem Tutorial verwenden Sie das Azure-Portal, um einen AKS-Cluster (Azure Kubernetes Service) bereitzustellen. Nach der Bereitstellung des AKS-Clusters verwenden Sie ein Helm-Chart, um virtuelle Knoten in Azure Container Instances bereitzustellen.

Voraussetzungen

In diesem Tutorial wird davon ausgegangen, dass die folgenden Tools installiert sind:

  • Azure CLI
  • kubectl (Version 1.30+)
  • Helm
  • Git

Anmelden bei Azure

Melden Sie sich unter https://portal.azure.com beim Azure-Portal an.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Erstellen eines virtuellen Netzwerks für Ihren AKS-Cluster

Wählen Sie auf der Startseite des Azure-Portals Ressource erstellen aus.

Screenshot der ersten Schritte bei der Erstellung eines neuen virtuellen Netzwerks im Azure-Portal

Wählen Sie Netzwerk>Virtuelles Netzwerk aus.

Screenshot der Auswahl eines neu zu erstellenden virtuellen Netzwerks im Azure-Portal

Wählen Sie auf der Seite Grundlagen ein Abonnement aus, und geben Sie die folgenden Werte ein:

  • Ressourcengruppe: Neue erstellen>virtualnodesresourcegroup
  • Name des virtuellen Netzwerks: myvirtualnetwork
  • Region: East US

Screenshot der Konfiguration auf der Seite „Grundlagen“ bei der Erstellung virtueller Netzwerke im Azure-Portal

Konfigurieren Sie auf der Seite IP-Adressen die folgenden Adressräume und Subnetze:

  • 10.0.0.0/16: default-Subnetz mit Größe /24
  • 10.1.0.0/16: aks Subnetz mit der Größe /16
  • 10.2.0.0/16: cg-Subnetz mit der Größe /16

Screenshot der Konfigurationen auf der Seite „IP-Adressen“ bei der Erstellung virtueller Netzwerke im Azure-Portal

Behalten Sie für alle anderen Einstellungen die Standardwerte bei, und wählen Sie dann Überprüfen + erstellen aus.

Wenn die Validierung abgeschlossen ist, wird Ihnen eine Zusammenfassung der Einstellungen des virtuellen Netzwerks angezeigt. Wählen Sie Erstellen aus, um Ihre Bereitstellungsanforderung für virtuelle Netzwerke zu übermitteln.

Wenn die Bereitstellung startet, wird eine Benachrichtigung mit dem Hinweis angezeigt, dass die Bereitstellung durchgeführt wird. Es wird eine weitere Benachrichtigung angezeigt, nachdem das virtuelle Netzwerk bereitgestellt wurde.

Erstellen Ihres AKS-Clusters

Wählen Sie auf der Startseite des Azure-Portals Ressource erstellen aus.

Screenshot der ersten Schritte bei der Erstellung eines neuen virtuellen Netzwerks im Azure-Portal

Wählen Sie Container>Azure Kubernetes Service (AKS) aus.

Screenshot der Auswahl eines neu zu erstellenden AKS-Clusters im Azure-Portal

Wählen Sie auf der Seite Grundlagen dasselbe Abonnement aus, das Sie zum Erstellen des virtuellen Netzwerks verwendet haben, und geben Sie die folgenden Werte ein:

  • Ressourcengruppe: virtualnodesresourcegroup
  • Vordefinierte Clusterkonfiguration: Dev/Test
  • Name des Kubernetes-Clusters: virtualnodescluster
  • Region: East US
  • Kubernetes-Version: beliebige Version ab 1.30., z. B. 1.30.9
  • Automatisches Upgrade: Enabled with patch

Screenshot der Konfiguration auf der Seite „Grundlagen“ bei der Erstellung von AKS-Clustern im Azure-Portal

Wählen Sie auf der Seite Knotenpools eine beliebige VM-SKU mit mindestens 4 vCPUs und 16 GB RAM für den Knotenpool agentpool aus. Diese Knoten werden zum Hosten der Infrastruktur für die virtuellen Knoten verwendet. Wählen Sie nicht Enable virtual nodes aus. Diese Einstellung gilt für das alte AKS-Angebot für virtuelle Knoten.

Screenshot, der zeigt, wie die Seite „Knotenpools“ für die Erstellung eines AKS-Clusters im Azure-Portal konfiguriert wird.

Geben Sie auf der Seite Netzwerk die folgenden Werte ein:

  • Netzwerkkonfiguration: Azure CNI Node Subnet
  • Verwenden Sie Ihr eigenes virtuelles Azure-Netzwerk: Enabled
  • Virtuelles Netzwerk: myvirtualnetwork
  • Clustersubnetz: aks
  • Adressbereich für Kubernetes Service: 10.4.0.0/16
  • IP-Adresse des Kubernetes-DNS-Diensts: 10.4.0.10
  • Netzwerkrichtlinie: Calico

Screenshot der Konfiguration auf der Seite „Netzwerk“ bei der Erstellung von AKS-Clustern im Azure-Portal

Behalten Sie für alle anderen Einstellungen die Standardwerte bei, und wählen Sie dann Überprüfen + erstellen aus.

Nach Abschluss der Überprüfung wird eine Zusammenfassung der Einstellungen des AKS-Clusters angezeigt. Wählen Sie Erstellen aus, um Ihre Bereitstellungsanforderung für den AKS-Cluster zu übermitteln.

Wenn die Bereitstellung startet, wird eine Benachrichtigung mit dem Hinweis angezeigt, dass die Bereitstellung durchgeführt wird. Es wird eine weitere Benachrichtigung angezeigt, nachdem der AKS-Cluster bereitgestellt wurde.

Weisen Sie der verwalteten Identität des AKS-Clusters Berechtigungen zu

Wenn Sie einen AKS-Cluster bereitstellen, erstellt AKS eine Knotenressourcengruppe im selben Abonnement wie die Hostinfrastruktur des Clusters. Standardmäßig hat diese Ressourcengruppe einen Namen wie MC_<resource group>_<AKS cluster>_<region>. In diesem Tutorial sollte die Knotenressourcengruppe den Namen MC_virtualnodesresourcegroup_virtualnodescluster_eastus haben.

Eine der in der Knotenressourcengruppe erstellten Ressourcen ist eine verwaltete Identität mit dem Namen virtualnodescluster_agentpool. Navigieren Sie zu dieser verwalteten Identität, und wählen Sie Azure-Rollenzuweisungen aus. Fügen Sie anschließend die folgenden beiden Rollenzuweisungen hinzu:

  • Geltungsbereich: Resource group
  • Abonnement: <your subscription name>
  • Ressourcengruppe: MC_virtualnodesresourcegroup_virtualnodescluster_eastus
  • Rolle: Contributor

Diese Rollenzuweisung ermöglicht die Erstellung von ACI-Containergruppen in der Knotenressourcengruppe.

  • Geltungsbereich: Resource group
  • Abonnement: <your subscription name>
  • Ressourcengruppe: virtualnodesresourcegroup
  • Rolle: Contributor

Mit dieser Rollenzuweisung können ACI-Containergruppen in das virtuelle Netzwerk eingefügt werden, das Sie in dieser Ressourcengruppe erstellt haben.

Screenshot des Hinzufügens von Rollenzuweisungen zur verwalteten AKS-Identität

Virtuelle Knoten in Azure Container Instances mit dem Helm-Diagramm installieren

Verwenden Sie die Azure-Befehlszeilenschnittstelle, um Konfiguration und Anmeldeinformationen des erstellten AKS-Clusters abzurufen. Dadurch wird kubectl für Ihren AKS-Cluster konfiguriert.

az login

az account set --subscription <your subscription ID>

az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup

Darüber hinaus registrieren Sie den ACI-Ressourcenanbieter in Ihrem Abonnement, damit Sie Containergruppen bereitstellen können.

az provider register -n Microsoft.ContainerInstance

Klonen Sie das GitHub-Repository virtualnodesOnAzureContainerInstances. Das Helm-Chart zum Installieren virtueller Knoten in Azure Container Instances befindet sich im Ordner Helm/virtualnode.

Verwenden Sie den folgenden Befehl, um das Helm-Chart zu installieren:

helm install virtualnode <cloned repository location>\Helm\virtualnode

Innerhalb einer Minute wird ein neuer virtueller Knoten registriert und im AKS-Cluster mit dem Status „Bereit“ angezeigt. Sie können den Status Ihrer AKS-Clusterknoten mit kubectl überprüfen.

kubectl get nodes

Screenshot der Ausgabe des kubectl-Befehls zum Abrufen von Knoten mit einem virtuellen Knoten im Status „Bereit“

Stellen Sie Ihren ersten Pod auf einem virtuellen Knoten bereit

Sie können mit virtuellen Knoten wie mit allen anderen Kubernetes-Knoten interagieren. Beispielsweise stellt das folgende YAML-Beispiel einen Pod auf dem virtuellen Knoten in Ihrem AKS-Cluster bereit. Beachten Sie die Verwendung von Knotenselektoren und Toleranzen, um den Pod geeignet zu platzieren. Sie können den YAML-Code mithilfe von kubectl apply bereitstellen.

apiVersion: v1
kind: Pod
metadata:
  annotations:    
  name: demo-pod
spec:
  containers:
  - command:
    - /bin/bash
    - -c
    - 'counter=1; while true; do echo "Hello, World! Counter: $counter"; counter=$((counter+1)); sleep 1; done'
    image: mcr.microsoft.com/azure-cli
    name: hello-world-counter
    resources:
      limits:
        cpu: 2250m
        memory: 2256Mi
      requests:
        cpu: 100m
        memory: 128Mi
  nodeSelector:
    virtualization: virtualnode2
  tolerations:
  - effect: NoSchedule
    key: virtual-kubelet.io/provider
    operator: Exists

Nachdem Ihr Pod bereitgestellt wurde, können Sie genau wie mit einem normalen Kubernetes-Pod damit interagieren.

Zum Beispiel, um den Pod-Status und die Ereignisse anzuzeigen (nützlich zum Auffinden von Fehlern!):

kubectl describe pods demo-pod

Um die Logs für den Pod anzuzeigen:

kubectl logs demo-pod

So rufen Sie eine Shell für den Pod ab

kubectl exec demo-pod -it -- /bin/bash

Nächste Schritte

In diesem Tutorial haben Sie im Azure-Portal einen AKS-Cluster erstellt, mithilfe eines Helm-Charts virtuelle Knoten in Azure Container Instances bereitgestellt und einen Pod auf Ihrem virtuellen Knoten bereitgestellt. Sie sind nun grundlegend damit vertraut, wie Sie Kubernetes-Pods auf Ihrem virtuellen Knoten ausführen, und können die meisten Kubernetes-Funktionen und -Konzepte für diese Pods ohne weitere Konfiguration nutzen!

Wenn Sie spezielle Funktionen für virtuelle Knoten oder Verhaltensweisen für Ihre Pods verwenden möchten, lesen Sie Podanpassungen.

Wenn Sie Ihre Installation von virtuellen Knoten anpassen möchten, lesen Sie Knotenanpassungen.

Wenn Sie planen, sehr große Workloads (Tausende von Pods pro Minute) auf virtuellen Knoten bereitzustellen, sehen Sie sich die bewährten Methoden und Empfehlungen an.