kalafoto - stock.adobe.com

Kubernetes-Cluster in Linux mit Worker Nodes skalieren

Kubernetes gehört zu den Platzhirschen bei der Orchestrierung von Container-Umgebungen. In dieser Anleitung lernen Sie, wie Sie der Umgebung weitere Server hinzufügen.

Zum Skalieren eines mit Kubernetes verwalteten Container-Clusters lassen sich Container-Hosts als Worker Nodes zu einem Kubernetes-Cluster hinzufügen.

Die Worker Nodes werden von einem Master verwaltet, der für den Cluster verantwortlich ist. Sie skalieren einen Kubernetes-Cluster, indem Sie weitere Worker Nodes hinzufügen. Dieser Artikel bezieht sich auf die Installation in Linux, zum Beispiel Ubuntu oder Debian, über das Terminal.

Linux für Kubernetes vorbereiten

Unabhängig davon, ob ein Linux-Server zu einem Master- oder einem Worker Node konfiguriert werden soll, sind einige Vorbereitungen notwendig. Stellen Sie zunächst sicher, dass die Namen der Server und deren IP-Adresse so eingestellt sind, dass die Kommunikation funktionieren kann.

Als ersten Schritt melden Sie sich im Terminal mit sudo su an, da Sie für viele der nachfolgenden Schritte Root-Rechte benötigen. Mit apt-get update aktualisieren Sie das Repository.

Für Kubernetes sollten Sie in Linux die Swap-Funktion deaktivieren, um Probleme bei der Installation und Verwaltung zu vermeiden. Dazu kommentieren Sie in der Datei etc/fstab die Zeilen für den Swap Space aus. Der Befehl nano /etc/fstab öffnet die Datei zum Bearbeiten. Im Terminal kann dazu auch alternativ swapoff -a vor der Installation von Kubernetes angegeben werden.

OpenSSH-Server und Docker installieren

Für die Remote-Verwaltung des Servers kann es sinnvoll sein, den OpenSSH-Server zu installieren. Für den Betrieb ist Docker notwendig. In Ubuntu oder Debian verwenden Sie dafür folgende Befehle:

apt-get install openssh-server

apt-get install -y docker.io

Sie können die Funktionalität von Docker mit docker version testen (Abbildung 1).

Abbildung 1: Zeigt das System die Informationen zu Docker an, war die Installation erfolgreich.
Abbildung 1: Zeigt das System die Informationen zu Docker an, war die Installation erfolgreich.

Kubernetes-Komponenten auf Linux-Servern installieren

Vor der eigentlichen Installation von Kubernetes müssen Sie noch die Paketquelle von Kubernetes hinzufügen. Das erreichen Sie mit folgenden Befehlen:

apt-get update

apt-get install -y apt-transport-https curl

Mit Curl fügen Sie jetzt die Signatur und die Quelle für Kubernetes hinzu:

Curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Danach speichern Sie die Quelle in Linux:

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Anschließend installieren Sie die notwendigen Dateien von Kubernetes:

apt-get install -y kubelet kubeadm kubectl

Zuletzt müssen Sie noch in der Konfigurationsdatei von Kubernetes eine weitere Umgebungsvariable hinzufügen. Dazu öffnen Sie zunächst die Datei:

nano /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

Anschließend fügen Sie folgende Zeile hinzu:

Environment=“cgroup-driver=systemd/cgroup-driver=cgroupfs”

Kubernetes-Knoten hinzufügen

Bis zu dieser Stelle sind die Schritte zur Vorbereitung für den Betrieb von Kubernetes Master Nodes und Kubernetes Worker Nodes identisch. Liegt bereits ein Cluster vor, müssen Sie keinen neuen installieren, sondern können den Knoten zum vorhandenen Cluster hinzufügen. Für die Netzwerk-Kommunikation müssen Sie dazu auf dem Master-Knoten ein Pod-Netzwerk definieren. Das erledigt der folgende Befehl:

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Der Status der Pods, inklusive des Pods für das Netzwerk können Sie sich mit kubectl angzeigen lassen (Abbildung 2):

kubectl get pods --all-namespaces

Abbildung 2: In der Liste sehen Sie nach dem Hinzufügen alle Pods und deren Status.
Abbildung 2: In der Liste sehen Sie nach dem Hinzufügen alle Pods und deren Status.

Zum Hinzufügen eines Cluster-Knotens zu Kubernetes benutzen Sie anschließend folgende Befehle:

Kubeadm join <IP-Adresse des Clusters>:<Port> --token <Token> --discovery-token-ca-cert-hash: <Hash>

Die einzelnen Optionen finden Sie auch in der Kubernetes-Dokumentation umfassend erläutert.

Mit MicroK8s auf Ubuntu Kubernetes installieren

Mit MicroK8s können Anwender in Linux in wenigen Schritten Kubernetes als alleinstehenden Cluster installieren. So bauen sich Entwickler und Administratoren in kurzer Zeit schnell und einfach einen Kubernetes-Cluster auf. Im ersten Schritt laden Sie hierzu die aktuelle Version von MicroK8s herunter. Das funktioniert bei nahezu allen Linux-Distributionen so:

sudo snap install microk8s --classic

Die verfügbaren, installierbaren Versionen lassen sich mit dem folgenden Befehl überprüfen:

snap info microk8s

Nun überprüfen Sie, ob MicroK8s bereit ist. Um mit dem aktuellen Benutzer das Kubernetes-Cluster zu verwalten, müssen Sie die Benutzerrechte anpassen:

sudo usermod -a -G microk8s $USER

sudo chown -f -R $USER ~/.kube

microk8s.status

Auch hier können Sie kubectl zur Verwaltung des Clusters verwenden. Dazu müssen Sie aber dem Befehl immer noch zusätzlich der Befehl microk8s voranstellen, zum Beispiel:

microk8s kubectl get nodes

microk8s kubectl get services

Eine Beispiel-App können Sie mit dem folgenden Befehl in den Container integrieren:

microk8s kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1

Abbildung 3: So sollte der lokale Betrieb eines Kubernetes-Clusters mit Microk8s aussehen.
Abbildung 3: So sollte der lokale Betrieb eines Kubernetes-Clusters mit Microk8s aussehen.

Um MicroK8s zu beenden, verwenden Sie den Befehl microk8s stop. Starten lässt sich der Kubernetes-Cluster wieder mit microk8s start. Auch hier können Sie das Dashboard von Kubernetes nutzen. Dieses aktivieren Sie mit microk8s enable dashboard. Für den Zugriff benötigen Sie das Token, das Ubuntu mit dem folgenden Befehl anzeigt:

token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)

microk8s kubectl -n kube-system describe secret $token

Die Befehle werden auch im Terminal angezeigt, wenn Sie das Dashboard aktiviert haben. Das Token können Sie ganz einfach in die Zwischenablage kopieren. Für die Authentifizierung geben Sie das Token in der Oberfläche ein. Den Port für den Zugriff können Sie ebenfalls mit kubectl umleiten:

microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443

Nächste Schritte

So orchestrieren Sie ein Docker-Cluster mit Kubernetes in Linux

Tipps für die Vernetzung von Docker-Containern

Container-Schulungen für Administratoren: Das gilt es zu beachten

Erfahren Sie mehr über Containervirtualisierung

ComputerWeekly.de
Close