Wie man

Kubernetes-Cluster auf Ubuntu 20 installieren.04 mit K3s

Kubernetes-Cluster auf Ubuntu 20 installieren.04 mit K3s

Kubernetes ist ein Tool zur Container-Orchestrierung für Hybrid-Cloud-Plattformen. Es wurde von Google entworfen. Mit Kubernetes können Benutzer Docker-Container über verschiedene Cloud- und Virtualisierungsplattformen hinweg verwalten. K3s ist eine leichtgewichtige Kubernetes-Bereitstellungs-Binärdatei, die die "stark belastete" K8s-Bereitstellung reduzieren soll. K3s wird von Rancher entwickelt.

In diesem Beitrag behandeln wir die Installation eines Kubernetes-Clusters auf Ubuntu 20.04 LTS mit k3s. Sie können sich ansehen, wie Sie k8s auf Ubuntu 20 installieren.04 mit kubeadm für eine Alternative.

Die Kubernetes-Architektur umfasst einen Master-Knoten und Worker-Knoten. Ihre Funktionen sind wie folgt:

Um einen k3s-Cluster einzurichten, benötigen Sie also mindestens zwei Hosts, die Meister Knoten und eins Arbeiter Knoten. In diesem Beitrag werden wir einen Master-Knoten und zwei Worker-Knoten verwenden.

Wir müssen unsere Hosts darauf vorbereiten, k3s in einem Cluster ausführen zu können. Verwenden Sie die folgenden Schritte, um den k3s-Cluster auf Ubuntu 20 . zu installieren.04:

Schritt 1: Ubuntu-System aktualisieren

Wenn Ihre Server mit Ubuntu 20 . installiert sind.04, aktualisieren und aktualisieren Sie sie:

sudo apt update sudo apt -y upgrade && sudo systemctl reboot

Schritt 2: Ordnen Sie die Hostnamen auf jedem Knoten zu

Stellen Sie sicher, dass die Hostnamen auf jedem Knoten zugeordnet sind. Dies geschieht durch Hinzufügen der IP und des Hostnamens jedes Knotens im in /etc/hosts Datei jedes Hosts.

In unserem Setup sieht es wie folgt aus:

$ sudo vim /etc/hosts 172.16.10.3 Meister 172.16.10.4 Arbeiter01 172.16.10.10 Arbeiter02 

Dies muss auf allen Hosts durchgeführt werden, damit Sie DNS-Namen verwenden können.

Schritt 3: Docker auf Ubuntu 20 installieren.04

Der nächste Schritt besteht darin, Docker auf den Hosts zu installieren. Wie bereits erwähnt, wird Kubernetes verwendet, um Docker-Container in einer Hybrid-Cloud-Infrastruktur zu verwalten. Daher müssen wir Docker auf allen Knoten ausführen, bevor wir K3s einrichten können.

Docker APT-Repository hinzufügen:

sudo apt update sudo apt install apt-transport-https ca-zertifikate curl software-properties-common -y curl -fsSL https://download.Docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.Docker.com/linux/ubuntu fokal stabil"

Installieren Sie Docker CE auf Ubuntu 20.04:

sudo apt update sudo apt install docker-ce -y

Dies muss auf allen Hosts einschließlich des Master-Knotens durchgeführt werden. Nach erfolgreicher Installation den Dienst starten und aktivieren.

sudo systemctl start docker sudo systemctl docker aktivieren

Sie können auch überprüfen, ob der Dienst gestartet wurde und ausgeführt wird:

$ sudo systemctl status docker ● docker.service - Docker Application Container Engine Geladen: geladen (/lib/systemd/system/docker.Bedienung; aktiviert; Herstellervoreinstellung: aktiviert) Aktiv: aktiv (läuft) seit Fr 2020-10-30 08:30:39 MEZ; vor 19s TriggeredBy: ● docker.Socket-Dokumente: https://docs.Docker.com Main PID: 9275 (dockerd) Aufgaben: 8 Speicher: 35.6M CGroup: /system.Slice/Docker.service 9275 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.Socke 30. Oktober 08:30:39 Ubuntu Dockerd[9275]: time="2020-10-30T08:30:39.460569874+01:00" level=warning msg="Ihr Kernel unterstützt die cgroup rt-Laufzeit nicht" 30. Oktober 08:30:39 ubuntu dockerd[9275]: time="2020-10-30T08:30:39.460672730+01:00" level=warning msg="Ihr Kernel unterstützt die cgroup blkio Weight nicht" 30. Oktober 08:30:39 ubuntu dockerd[9275]: time="2020-10-30T08:30:39.460820506+01:00" level=warning msg="Ihr Kernel unterstützt die cgroup blkio weight_device nicht" 30. Okt 08:30:39 ubuntu dockerd[9275]: time="2020-10-30T08:30:39.461286028+01:00" level=info msg="Container laden: start." 30. Oktober 08:30:39 Ubuntu Dockerd[9275]: time="2020-10-30T08:30:39.620849970+01:00" level=info msg="Default Bridge (Docker0) wird mit einer IP-Adresse 172 . zugewiesen.17.0> 30. Okt 08:30:39 Ubuntu Dockerd[9275]: time="2020-10-30T08:30:39.717281156+01:00" level=info msg="Container werden geladen: fertig." 30. Oktober 08:30:39 Ubuntu Dockerd[9275]: time="2020-10-30T08:30:39.754253372+01:00" level=info msg="Docker daemon" commit=4484c46d9d graphdriver(s)=overlay2 version> 30. Okt 08:30:39 ubuntu dockerd[9275]: time="2020-10-30T08:30: 39.755461813+01:00" level=info msg="Daemon hat die Initialisierung abgeschlossen" 30. Oktober 08:30:39 ubuntu systemd[1]: Docker Application Container Engine gestartet.

Fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu, um zu vermeiden, dass Sie jedes Mal sudo eingeben, wenn Sie Docker-Befehle ausführen run.

sudo usermod -aG docker $USER newgrp docker

Schritt 4: Einrichten des Master-k3s-Knotens

In diesem Schritt werden wir den Masterknoten installieren und vorbereiten install. Dazu muss der k3s-Dienst installiert und gestartet werden.

curl -sfL https://get.k3s.io | sh -s - --docker

Führen Sie den obigen Befehl aus, um k3s auf dem Master-Knoten zu installieren. Das Skript installiert k3s und startet es automatisch.

[INFO] Suche nach Release für Kanalstabil [INFO] Verwenden von v1.18.9+k3s1 als Release [INFO] Hash herunterladen https://github.com/rancher/k3s/releases/download/v1.18.9+k3s1/sha256sum-amd64.txt [INFO] Binärdatei herunterladen https://github.com/rancher/k3s/releases/download/v1.18.9+k3s1/k3s [INFO] Überprüfen des Binär-Downloads [INFO] Installieren von k3s nach /usr/local/bin/k3s [INFO] Erstellen von /usr/local/bin/kubectl-Symlinks zu k3s [INFO] Erstellen von /usr/local/bin /crictl-Symlink zu k3s [INFO] /usr/local/bin/ctr-Symlink zu k3s überspringen, Befehl existiert in PATH unter /usr/bin/ctr [INFO] Killall-Skript erstellen /usr/local/bin/k3s-killall.sh [INFO] Deinstallationsskript erstellen /usr/local/bin/k3s-uninstall.sh [INFO] env: Umgebungsdatei /etc/systemd/system/k3s erstellen.Bedienung.env [INFO] systemd: Servicedatei erstellen /etc/systemd/system/k3s.service [INFO] systemd: k3s-Einheit aktivieren Symlink erstellt /etc/systemd/system/multi-user.Ziel.will/k3s.Dienst → /etc/systemd/system/k3s.Bedienung. [INFO] systemd: Starten von k3s

Um zu überprüfen, ob der Dienst erfolgreich installiert wurde, können Sie Folgendes verwenden:

$ sudo systemctl status k3s ● k3s.service - Lightweight Kubernetes Geladen: geladen (/etc/systemd/system/k3s.Bedienung; aktiviert; Herstellervoreinstellung: aktiviert) Aktiv: aktiv (läuft) seit Fr. 2020-10-30 08:32:46 MEZ; vor 53s Docs: https://k3s.io Process: 11151 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS) Process: 11152 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS) Main PID: 11153 (k3s- Server) Aufgaben: 0 Speicher: 420.9M CGroup: /system.Scheibe/k3s.service └─11153 /usr/local/bin/k3s server --docker 30. Oktober 08:33:32 ubuntu k3s[11153]: I1030 08:33:32.532935 11153 Versöhner.go:196] operationExecutor.UnmountVolume gestartet für Volume "helm-traefik-token-dmfz6"> 30. Oktober 08:33:32 ubuntu k3s[11153]: I1030 08:33:32.533481 11153 Versöhner.go:196] operationExecutor.UnmountVolume für Volume "Werte" gestartet (UniqueName: "kub> 30. Okt 08:33:32 ubuntu k3s[11153]: W1030 08:33:32.533849 11153 empty_dir.go:453] Warnung: Fehler beim Löschen des Kontingents auf /var/lib/kubelet/pods/d1fae0b1-f3ac-481a-b6a> 30. Oktober 08:33:32 ubuntu k3s[11153]: I1030 08:33:32.538649 11153 operation_generator.go:782] UnmountVolume.TearDown erfolgreich für Band "kubernetes.io/configmap> 30. Oktober 08:33:32 Ubuntu k3s[11153]: I1030 08:33:32.555370 11153 operation_generator.go:782] UnmountVolume.TearDown erfolgreich für Band "kubernetes.io/secret/d1> 30. Okt 08: 33: 32 ubuntu k3s[11153]: I1030 08: 33: 32.653113 11153 Abgleicher.go:319] Volume getrennt für Volume "helm-traefik-token-dmfz6" (UniqueName: "kubernete> 30. Okt 08:33:32 ubuntu k3s[11153]: I1030 08:33:32.653137 11153 Abgleicher.go:319] Volume getrennt für Volume "values" (UniqueName: "kubernetes.io/configmap/d1f> 30. Oktober 08:33:33 Ubuntu k3s[11153]: W1030 08:33:33.978774 11153 pod_container_deletor.go:77] Container "23d34e0acde3f4ab7e41d99e9cff16e7ba8cd76122158dfc18b64ae0> 30. Oktober 08:33:33 ubuntu k3s[11153]: W1030 08:33:33.997821 11153 pod_container_deletor.go:77] Container "a52fe91aa3e7b137ebe4dd993e358c382f96b5df342cb1c098acadb6> 30. Oktober 08:33:35 ubuntu k3s[11153]: W1030 08:33:35.022454 11153 pod_container_deletor.go:77] Container "2b9f302427059276bc2e1d012db5cbcaeb72ed373cb52218edb6eb4b

Sie können überprüfen, ob der Master-Knoten funktioniert, indem Sie:

sudo kubectl get node -o wide

Die Ausgabe sollte in etwa so aussehen:

[email protected]:~# sudo kubectl get node -o wide NAME STATUS ROLES ALTER VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master Ready master 3m2s v1.18.9+k3s1 172.16.10.3  Ubuntu 20.04.1 LTS 5.4.0-52-generischer Docker://19.3.8

Schritt 5: Ports auf Firewall zulassen

Wir müssen Ports zulassen, die für die Kommunikation zwischen dem Master- und den Worker-Knoten verwendet werden. Die Ports sind 443 und 6443.

sudo ufw erlauben 6443/tcp sudo ufw erlauben 443/tcp

Sie müssen ein Token vom Master extrahieren, das verwendet wird, um die Knoten mit dem Master zu verbinden.

Auf dem Masterknoten:

sudo cat /var/lib/rancher/k3s/server/node-token

Sie erhalten dann ein Token, das wie folgt aussieht:

K1078f2861628c95aa328595484e77f831adc3b58041e9ba9a8b2373926c8b034a3::server:417a7c6f46330b601954d0aaaa1d0f5b

Schritt 6: Installieren Sie k3s auf Worker-Knoten und verbinden Sie sie mit dem Master

Der nächste Schritt besteht darin, k3s auf den Worker-Knoten zu installieren. Führen Sie die folgenden Befehle aus, um k3s auf Worker-Knoten zu installieren:

curl -sfL http://get.k3s.io | K3S_URL=https://:6443 K3S_TOKEN= sh -s - --docker

Wo master_IP ist die IP des Masterknotens und join_token ist der vom Master erhaltene Token. e.G:

curl -sfL http://get.k3s.io | K3S_URL=https://172.16.10.3:6443 K3S_TOKEN=K1078f2861628c95aa328595484e77f831adc3b58041e9ba9a8b2373926c8b034a3::server:417a7c6f46330b601954d0aaaa1d0f5b sh -s - --docker

Sie können überprüfen, ob der k3s-Agent auf den Worker-Knoten ausgeführt wird, indem Sie:

sudo systemctl status k3s-agent

Führen Sie Folgendes aus, um zu überprüfen, ob unsere Knoten dem Cluster erfolgreich hinzugefügt wurden:

sudo kubectl bekommt Knoten

Ihre Ausgabe sollte wie folgt aussehen:

[email protected]:~# kubectl get node -o wide NAME STATUS ROLES ALTER VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master Ready master 14m v1.18.9+k3s1 172.16.10.3  Ubuntu 20.04.1 LTS 5.4.0-52-generischer Docker://19.3.8 Arbeiter02 Bereit  90er v1.18.9+k3s1 172.16.10.10  Ubuntu 20.04.1 LTS 5.4.0-52-generischer Docker://19.3.8 Arbeiter01 Bereit  41s v1.18.9+k3s1 172.16.10.4  Ubuntu 18.04.5 LTS 4.fünfzehn.0-122-generischer Docker://19.3.6 

Dies zeigt, dass wir unseren k3s-Cluster erfolgreich eingerichtet haben, um Anwendungen darauf bereitzustellen.

Bereitstellen von Add-Ons auf K3s

K3s ist ein leichtes Kubernetes-Tool, das nicht mit allen Tools geliefert wird, aber Sie können sie separat installieren.

Installieren Sie das Helm-Befehlszeilentool auf k3s

$ mv linux-amd64/helm /usr/local/bin/helm

Version prüfen

 $ Helmversion

Fügen Sie das Helm-Chart-Repository hinzu, um die Installation von Anwendungen mit helm zu ermöglichen:

$ Helm Repo füge stabile https://charts hinzu.Helm.sh/stable $ Helm Repo-Update

Bereitstellen einer Anwendung auf k3s

Wir können jetzt eine Testanwendung auf dem K3s-Cluster bereitstellen.

Bereitstellen von Nginx-Webproxy auf K3s

Nginx kann als Web-Proxy verwendet werden, um eingehende Web-Traffic-Routen in und aus dem Cluster freizugeben.

Wir können nginx Web-Proxy mit Helm installieren:

 $ helm install nginx-ingress stable/nginx-ingress --namespace kube-system \ --set defaultBackend.aktiviert=falsch

Wir können testen, ob die Anwendung installiert wurde durch:

$ kubectl get pods -n kube-system -l app=nginx-ingress -o wide

Die Ausgabe sollte wie folgt aussehen:

[email protected]:~# kubectl get pods -n kube-system -l app=nginx-ingress -o wide NAME BEREIT STATUS RESTARTS ALTER IP NODE NOMINATED NODE READINESS GATES nginx-ingress-controller-56547fb57-vsjdm 1/1 Wird ausgeführt 0 28s 10.42.2.6 Arbeiter01  

Wir haben nginx Web-Proxy erfolgreich auf k3s bereitgestellt.

k3s entfernen

Um k3s auf den Worker-Knoten zu entfernen, führen Sie Folgendes aus:

$ sudo /usr/local/bin/k3s-agent-uninstall.sh $ sudo rm -rf /var/lib/rancher

Um k3s auf dem Master-Knoten zu entfernen, führen Sie Folgendes aus:

$ sudo /usr/local/bin/k3s-uninstall.sh $ sudo rm -rf /var/lib/rancher 

Fazit

In diesem Artikel konnten wir k3s in einer selbst gehosteten Umgebung bereitstellen. Wir haben auch helm und nginx auf unserem k3s-Cluster bereitgestellt.

Nachfolgend finden Sie weitere Artikel zu Kubernetes:

Sicherer Zugriff auf Linux-Systeme und Kubernetes mit Teleport

Kubernetes-Cluster auf Ubuntu 20 installieren.04 mit kubeadm

So installieren Sie den MicroK8s Kubernetes-Cluster auf CentOS 8

So deaktivieren Sie die Ergebnisse der Websuche in der Windows 10-Taskleiste
Wann immer Sie in der Suche der Taskleiste in Windows 10 suchen, wird die Suche kombiniert von Ihrem lokalen Computer und dem Web aus durchgeführt. Di...
So erhöhen Sie die Dicke des blinkenden Cursors in Windows 10
Manchmal finden es einige Benutzer aufgrund von Designeinstellungen oder aus anderen Gründen schwierig, den blinkenden Cursor der Maus zu sehen. Oft i...
So ändern Sie die Größe von Kacheln im Startmenü von Windows 10
Windows 10 hat ein sehr schickes Startmenü. Sie können das Startmenü einfach ziehen und seine Größe ändern, indem Sie den Cursor am Rand nehmen und zu...