Getty Images/iStockphoto

Schritt für Schritt zum Multi-Cloud-Kubernetes-Cluster

Um die Verwaltung von Ressourcen über mehrere Clouds hinweg zu vereinfachen, nutzen Sie ein Multi-Cloud-Kubernetes-Cluster. Dieses Tutorial unterstützt bei der Einrichtung.

Die Verwaltung von Ressourcen, die sich über mehrere Cloud-Umgebungen erstrecken, kann kompliziert sein. Die Einrichtung eines Multi-Cloud-Kubernetes-Clusters ist eine Möglichkeit, um die Verwaltung zu verbessern. Dieses Cluster besitzt nur eine Control Plane (Kontrollschicht) zur Verwaltung der Nodes (Knoten) in mehreren Cloud-Umgebungen.

Hier erhalten Sie eine Einführung in Multi-Cloud-Kubernetes-Cluster und eine Schritt-für-Schritt-Anleitung zum Aufbau eines solchen Clusters.

Multi Cloud-Kubernetes vs. Multi-Cluster-Kubernetes

Multi-Cloud-Kubernetes ist eine architektonische Strategie, bei der ein einziger Kubernetes-Cluster betrieben wird, dessen Nodes sich in mehreren Clouds befinden. In einem solchen Setup können einige Nodes in Amazon Web Services (AWS) betrieben werden, während andere zum Beispiel in Azure laufen. Alle Nodes gehören zum selben Cluster und werden über die gleiche Control Plane verwaltet.

Multi-Cloud-Kubernetes unterscheidet sich von Multi-Cluster-Kubernetes.

Bei Multi-Cluster-Kubernetes werden mehrere Kubernetes-Cluster gleichzeitig genutzt. Das bedeutet aber nicht, dass IT-Teams Kubernetes über mehrere Clouds hinweg betreiben. Um eine Multi-Cluster-Architektur zu schaffen, können sie zwei oder mehr Cluster auch innerhalb derselben Cloud einrichten.

Mehrere Kubernetes-Cluster führen zu zwei oder mehr separaten Control Planes, die jedoch meist durch eine zentrale Verwaltungsebene miteinander verbunden sind. Bei Multi-Cloud-Kubernetes gibt es ein einziges Cluster und eine Control Plane, die über mehrere Clouds verteilte Ressourcen verwaltet.

Vorteile von Multi Cloud-Kubernetes-Clustern

Multi-Cloud-Kubernetes ist nicht die gängigste Art, Kubernetes einzusetzen. Die meisten Anwender richten ein Cluster in einer einzigen Cloud oder Infrastrukturplattform ein. Der Aufbau eines Multi-Cloud-Kubernetes bietet jedoch mehrere potenzielle Vorteile, wie zum Beispiel:

  • Verlässlichkeit: Die Wahrscheinlichkeit, dass der Workload auch noch verfügbar ist, wenn eine der Clouds ausfällt, ist höher, wenn IT-Teams Nodes auf mehreren Clouds verteilen.
  • Backup und Disaster Recovery (DR): Falls eine Cloud ausfällt, bieten Nodes in mehreren Clouds eine schnelle und einfache Möglichkeit, Pods von einer Cloud in die andere zu verschieben.
  • Performance: Wenn Teams Nutzer in verschiedenen Regionen bedienen müssen, können Nodes in mehreren Clouds die Workload Performance verbessern. Die Netzwerklatenz wird verringert, wenn Pods auf Nodes bereitgestellt werden, die sich in der Nähe der einzelnen Nutzer befinden.
  • Kostenmanagement: Die Gesamtkosten werden durch die Möglichkeit gesenkt, Nodes auf den Grundlagen von VM-Instanzen (Virtuelle Maschinen) von mehreren Cloud-Anbietern zu erstellen. Teams können das beste Preis-Leistungs-Verhältnis für jeden Node finden, da eine längere Liste von VM-Instanzen zur Auswahl steht.

Einrichtung eines Multi-Cloud-Kubernetes-Clusters

Die Einrichtung eines Kubernetes-Clusters in Multi-Cloud-Umgebungen ist relativ einfach. Hier sind die grundlegenden Schritte:

  • Stellen Sie VM-Instanzen in mehreren Clouds bereit. Jede Cloud benötigt mindestens eine VM.
  • Installieren Sie Kubernetes auf allen VMs, damit sie als Nodes innerhalb des Kubernetes-Clusters arbeiten können.
  • Konfigurieren Sie mindestens einen Node so, dass er als Control Plane Node dient. Für High Availibility (Hochverfügbarkeit) Setups können Sie mehrere Control Plane Nodes konfigurieren.
  • Fügen Sie dem Cluster weitere Nodes als Worker Nodes (Arbeitsknoten) hinzu.

Hier ist ein Überblick, wie Sie diese Einrichtung mit Nodes in AWS und Azure implementieren.

Schritt 1: Erstellen Sie AWS- und Azure-VMs

Zunächst erstellen Sie Ihre VMs.

In AWS erstellen Sie eine VM in der Konsole (AWS Management Console) oder verwenden einen Befehl wie den untenstehenden. Hinweis: Ersetzen Sie ami-xxxxxxxx durch eine gültige Amazon Machine Image ID.

aws ec2 run-instances –-image-id ami-xxxxxxxx --count 1 –-instance-type t2.micro

Auf Azure starten Sie eine VM-Instanz mit folgendem Code:

az vm create \

  --resource-group $RESOURCE_GROUP_NAME \

  --name $VM_NAME \

  --image &VM_IMAGE \

  --admin-username $ADMIN_USERNAME \

  --generate-ssh-keys \

  --public-ip-sku Standard

Die Nodes der verschiedenen Clouds müssen über das Internet miteinander verbunden werden. Stellen Sie sicher, dass die VMs mit IP-Adressen bereitgestellt werden, die über das Internet geroutet werden können. Alternativ können Sie einen privaten Verbindungstunnel (Tunneling) zwischen Ihren beiden Clouds einrichten, wenn Sie Ihre Nodes nicht mit dem Internet verbinden möchten.

Schritt 2: Installieren Sie Kubernetes auf allen VMs

Verbinden Sie sich über Secure Shell (SSH) mit jeder VM und installieren Sie Kubernetes mit dem folgenden Befehl:

sudo apt-get install -y kubelet kubeadm kubectl

Dieser Befehl funktioniert auf modernen Ubuntu-VMs. Stellen Sie VMs mit einem anderen Linux-Betriebssystem bereit, finden Sie Installationsanweisungen in der Kubernetes-Dokumentation.

Mit diesem Befehl werden die wesentlichen Kubernetes-Komponenten installiert, einschließlich kubeadm. Das wird in den folgenden Schritten verwendet, um VMs so zu konfigurieren, dass sie entweder als Control Plane Node oder als Worker Node dienen.

Schritt 3: Konfigurieren Sie einen Control Plane Node

Jetzt können Sie die Control Plane Nodes einrichten. Melden Sie sich bei der VM an, die als Control Plane Node dienen soll. Dann verwenden Sie kubeadm, um den Node einzurichten, wie hier zu sehen:

sudo kubeadm init –-control-plane-endpoint=$IPADDR –-pod-network-cidr=$POD_CIDR –-node-name $NODENAME –-apiserver-cert-extra-sans=$IPADDR -–ignore-preflight-errors Swap

Schritt 4: Installieren Sie Kubernetes auf den Worker Nodes

Per SSH können Sie sich nun auf die anderen VM-Instanzen zugreifen und sie als Worker Nodes einrichten, die dem Cluster angehören. Dieser Cluster wird vom Control Plane Node verwaltet, der im vorherigen Schritt konfiguriert wurde.

Melden Sie sich bei dem konfigurierten Control Plane Node an und führen Sie folgenden Befehl aus:

kubeadm token create -–print-join-command

Dieser Befehl gibt eine Zeichenfolge aus, die die notwendigen Informationen enthält, um andere Nodes in Ihrem Cluster einzubinden. Beispielsweise die IP-Adresse der Control Plane, den Port und das generierte Token. Kopieren Sie diese Ausgabe. Dann melden Sie sich bei den anderen VM-Instanzen an und führen Sie folgenden Befehl aus:

sudo kubeadm join 1.2.3.4:6443 -–token j4eice.33vgvgyf5cxw4u8i \

     --discovery-token-ca-cert-hash

Sha256:a2ea4c87eab70edc4f39c2e7077389c3dd010c20cadfb9c58d7278cc3deec

Achten Sie darauf, dass Sie die richtige IP-Adresse für den Control Plane Node angeben (1.2.3.4 im obigen Beispiel). Ändern Sie auch die anderen Variablen, damit sie der Ausgabe des kubeadm-Befehls entsprechen, den Sie auf dem Control Plane Node ausgeführt haben.

Jetzt haben Sie ein Cluster mit Nodes, die sowohl in AWS als auch in Azure laufen. Diese Nodes können Sie verwenden, um Workloads bereitzustellen, die sich über mehrere Clouds erstrecken, aber als Teil eines einzigen Kubernetes-Clusters verwaltet werden.

Erfahren Sie mehr über Cloud Computing