Wie man einen K3s Kubernetes-Cluster unter Ubuntu 22.04 einrichtet
Wie man einen K3s Kubernetes-Cluster unter Ubuntu 22.04 einrichtet

Wie man einen K3s Kubernetes-Cluster unter Ubuntu 22.04 einrichtet

0 Aktien
0
0
0
0

Wie man einen K3s Kubernetes-Cluster unter Ubuntu 22.04 einrichtet

Einführung

Kubernetes zählt zu den beliebtesten Tools der Branche für die Container-Orchestrierung. Die Einrichtung eines Kubernetes-Clusters von Grund auf kann jedoch eine anspruchsvolle Aufgabe sein und erfordert umfangreiche Konfigurationen. Es gibt zwar verschiedene Möglichkeiten, mit der Einrichtung eines Kubernetes-Clusters zu beginnen, doch viele davon sind zeitaufwändig, es sei denn, man plant die Erstellung eines Produktionsclusters.

Um die Einrichtung eines Kubernetes-Clusters zu vereinfachen und dessen Bereitstellung an ressourcenbeschränkten Standorten zu ermöglichen – und ihn damit ideal für Edge Computing zu machen –, entwickelte Rancher Labs K3s. K3s ist eine schlanke Kubernetes-Distribution, mit der sich ein Kubernetes-Cluster innerhalb weniger Minuten mithilfe einer kleinen Binärdatei installieren lässt.

In diesem Tutorial lernen Sie, wie Sie K3s auf Ubuntu installieren und welche zusätzlichen Konfigurationsoptionen in K3s verfügbar sind.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie Folgendes:

Ein Ubuntu 22.04 Server mit mindestens 1 GB RAM wurde gemäß der Anleitung zur Ersteinrichtung eines Ubuntu 22.04 Servers eingerichtet.

Schritt 1 – K3s installieren

In diesem Schritt installieren Sie die neueste Version von K3s auf Ihrem Ubuntu-Rechner.

Wenn Sie sich passwortbasiert anmelden, melden Sie sich mit folgendem Befehl als Ihr sudo-Benutzer (in diesem Tutorial ist es „sammy“) an Ihrem Server an:

$ ssh sammy@your_server_ip

سپس با استفاده از دستور زیر K3 را نصب کنید.

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

Sie werden aufgefordert, das Benutzerpasswort einzugeben, um das Skript auszuführen.

Dieser Befehl lädt das Skript von https://get.k3s.io mit curl herunter und führt es anschließend über die Option `--sh` aus. Nach der Ausführung des Skripts beginnt die Installation des K3s-Clusters mit Standardkonfigurationsoptionen, die einen Kubernetes-Cluster mit einem einzelnen Knoten erstellen.

Sie erhalten eine Ausgabe, die in etwa so aussieht:

[secondary_label Output]

[INFO] Finding release for channel stable

[INFO] Using v1.27.7+k3s2 as release

[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/sha256sum-amd64.txt

[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/k3s

[INFO] Verifying binary download

[INFO] Installing k3s to /usr/local/bin/k3s

[INFO] Skipping installation of SELinux RPM

[INFO] Creating /usr/local/bin/kubectl symlink to k3s

[INFO] Creating /usr/local/bin/crictl symlink to k3s

[INFO] Creating /usr/local/bin/ctr symlink to k3s

[INFO] Creating killall script /usr/local/bin/k3s-killall.sh

[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh

[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env

[INFO] systemd: Creating service file /etc/systemd/system/k3s.service

[INFO] systemd: Enabling k3s unit

Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.

[INFO] systemd: Starting k3s

...

Die Skriptausgabe zeigt die Schritte, die das Installationsskript zur Installation und zum Start des Clusters ausführt. Anschließend überprüfen Sie den Status des K3s-Dienstes mit systemctl, um mit dem folgenden Befehl festzustellen, ob er ausgeführt wird.

$ systemctl status k3s

Dieser Befehl zeigt den Status als aktiv (wird ausgeführt) an:

[secondary_label Output]

● k3s.service - Lightweight Kubernetes

Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)

Active: active (running) since Mon 2023-11-27 16:52:01 UTC; 19s ago

Docs: https://k3s.io

Process: 8396 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exi>

Process: 8398 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)

Process: 8399 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)

Main PID: 8400 (k3s-server)

Tasks: 20

Memory: 467.3M

CPU: 12.952s

CGroup: /system.slice/k3s.service

├─8400 "/usr/local/bin/k3s server"

└─8421 "containerd " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

...

Sie haben nun K3s auf Ubuntu installiert, um einen Kubernetes-Cluster mit einem einzelnen Knoten zu erstellen. Als Nächstes sehen Sie sich die standardmäßig auf dem Cluster bereitgestellten Kubernetes-Objekte an.

Schritt 2 – Überprüfung der Kubernetes-Standardobjekte

In diesem Schritt überprüfen Sie die standardmäßigen Kubernetes-Objekte, die nach der Installation von K3s bereitgestellt wurden.

Führen Sie den folgenden Befehl aus, um alle im Cluster bereitgestellten Kubernetes-Objekte im Namespace „kube“ anzuzeigen. kubectl wird während der K3s-Installation automatisch installiert und erfordert daher keine separate Installation.

$ sudo kubectl get all -n kube-system

Sie erhalten eine Ausgabe, die in etwa so aussieht:

[secondary_label Output]

NAME                                         READY   STATUS      RESTARTS   AGE

pod/local-path-provisioner-957fdf8bc-t8vpx   1/1     Running     0          4m34s

pod/coredns-77ccd57875-4hrd9                 1/1     Running     0          4m34s

pod/helm-install-traefik-crd-j2sqs           0/1     Completed   0          4m34s

pod/helm-install-traefik-mvxhw               0/1     Completed   1          4m34s

pod/metrics-server-648b5df564-gqxcz          1/1     Running     0          4m34s

pod/svclb-traefik-18597fcd-2cf68             2/2     Running     0          4m6s

pod/traefik-768bdcdcdd-srb8d                 1/1     Running     0          4m7s



NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE

service/kube-dns         ClusterIP      10.43.0.10      <none>           53/UDP,53/TCP,9153/TCP       4m44s

service/metrics-server   ClusterIP      10.43.69.115    <none>           443/TCP                      4m43s

service/traefik          LoadBalancer   10.43.149.125   159.65.159.115   80:32266/TCP,443:32628/TCP   4m7s



NAME                                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE

daemonset.apps/svclb-traefik-18597fcd   1         1         1       1            1           <none>          4m7s



NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE

deployment.apps/local-path-provisioner   1/1     1            1           4m44s

deployment.apps/coredns                  1/1     1            1           4m44s

deployment.apps/metrics-server           1/1     1            1           4m44s

deployment.apps/traefik                  1/1     1            1           4m7s



NAME                                               DESIRED   CURRENT   READY   AGE

replicaset.apps/local-path-provisioner-957fdf8bc   1         1         1       4m34s

replicaset.apps/coredns-77ccd57875                 1         1         1       4m34s

replicaset.apps/metrics-server-648b5df564          1         1         1       4m34s

replicaset.apps/traefik-768bdcdcdd                 1         1         1       4m7s



NAME                                 COMPLETIONS   DURATION   AGE

job.batch/helm-install-traefik-crd   1/1           28s        4m41s

job.batch/helm-install-traefik       1/1           31s        4m41s



...
 

Die obige Ausgabe zeigt die verschiedenen im Kubernetes-Cluster bereitgestellten Objekte. Beispielsweise laufen derzeit vier Deployments: jeweils eines für coredns, local-path-provisioner, metrics-server und traefik.

Wenn Sie den Befehl ohne sudo ausführen, kann folgender Fehler auftreten.

Output
WARN[0000] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions

error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied

...

Um zu vermeiden, dass beim Ausführen von kubectl-Befehlen sudo erforderlich ist, ändern Sie die Berechtigungen der Konfigurationsdatei mit chmod, wie unten gezeigt.

$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

An diesem Punkt haben Sie den Status der standardmäßig im K3s-Cluster bereitgestellten Kubernetes-Objekte überprüft. Im nächsten Schritt werden Sie die Konfigurationsoptionen in K3s während der Installation kennenlernen und anpassen.

Schritt 3 – Konfigurationsoptionen in K3S verstehen und anpassen

Sie haben K3s mit den Standardeinstellungen installiert. Sie können die Konfiguration jedoch anpassen, um ein benutzerdefiniertes, clusterspezifisches Verhalten zu erzielen. In diesem Schritt erfahren Sie, wie Sie Umgebungsvariablen in K3 verwenden, um Einstellungen im Installationsskript festzulegen.

Beispielsweise werden bei der Installation des Traefik Ingress Controllers Standardeinstellungen mitgeliefert. In einigen Fällen möchten Sie den Ingress Controller möglicherweise während der Installation deaktivieren.

Die Umgebungsvariable INSTALL_K3S_EXEC ermöglicht das Übergeben von Flags an den K3s-Dienst. Mit dem folgenden Befehl kann Traefik während der K3-Installation deaktiviert werden.

$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -

Überprüfen Sie die Kubernetes-Objekte. Controller-Ressourcen werden diesmal nicht vorhanden sein.

$ sudo kubectl get all -n kube-system

Neben der Änderung von Konfigurationsoptionen über Umgebungsvariablen kann dies auch in der K3s-Konfigurationsdatei erfolgen. Die erforderlichen Optionen können in der Konfigurationsdatei angegeben werden, und anschließend muss der K3s-Server neu gestartet werden, damit die Änderungen wirksam werden.

K3s verwendet die Konfigurationsdatei unter etc/rancher/k3s/config.yaml/.

Führen Sie den folgenden Befehl aus, um die Konfigurationsdatei zu erstellen und zu schreiben.

$ sudo nano /etc/rancher/k3s/config.yaml

Schreiben Sie Folgendes in die Konfigurationsdatei.

$ disable: traefik

Drücken Sie Strg+X, um die Datei zu speichern und zu schließen. Die deaktivierte Zeile „traefik“ weist den K3s-Dienst an, die mit der Traefik-Installation verbundenen Ressourcen zu entfernen.

Starten Sie anschließend den K3s-Dienst mit dem folgenden Befehl neu, um die Änderungen anzuwenden.

$ sudo systemctl restart k3s

Sie können dies nun überprüfen, indem Sie alle Kubernetes-Objekte im System-Namespace „kube“ auflisten. Derzeit sollten keine Ressourcen mit der Traefik-Installation verknüpft sein.

$ sudo kubectl get all -n kube-system

In diesem Schritt haben Sie gelernt, wie Sie die K3s-Konfiguration während und nach der Installation ändern. Als Nächstes löschen Sie den K3s-Cluster, um die virtuellen Maschinen zu bereinigen.

Schritt 4 – K3s deinstallieren

Um K3S zu deinstallieren, führen Sie das Shell-Skript ‘usr/local/bin/k3s-uninstall.sh/’ aus. Dieses Skript wird nach der Installation von K3S automatisch generiert und dient der vollständigen Deinstallation. Dabei werden alle K3S-Konfigurationen und Cluster-Tools entfernt, die während der Installation erstellt oder installiert wurden.

Um K3 zu entfernen, führen Sie folgenden Befehl aus:

$ /usr/local/bin/k3s-uninstall.sh

Bestätigen Sie die Deinstallation, indem Sie den Status des K3s-Dienstes mit folgendem Befehl überprüfen:

$ systemctl status k3s

Sie erhalten eine Ausgabe, die in etwa so aussieht:

[secondary_label Output]

Unit k3s.service could not be found.

Ergebnis

In diesem Artikel haben Sie einen K3s-Cluster unter Ubuntu installiert und die in K3s verfügbaren Konfigurationsoptionen sowie deren Funktionsweise kennengelernt. Nachdem Sie Ihren Kubernetes-Cluster eingerichtet haben, sollten Sie die verschiedenen Objekttypen und deren Funktionalität in Kubernetes erkunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen