Erfahren Sie, wie Sie Kubernetes mit Talos ganz einfach nutzen können.
Übersetzt aus „Making Kubernetes Simple with Talos“ , Autor Ritesh.
In diesem Jahr feiert Kubernetes sein zehnjähriges Jubiläum mit der Veröffentlichung von v1.30.0 und festigt damit seine Position als Cloud-Plattform der Wahl. Selbstverwaltete Kubernetes-Cluster wie EKS, GKS und AKS machen 73 % der gesamten Cluster aus, während die restlichen 27 % selbstverwaltet sind, wie von Dynatrace beschrieben . Das letzte Jahrzehnt war das Zeitalter der Public Cloud, aber aufgrund steigender Kosten versuchen einige Unternehmen, einen Ausgleich mit der Hybrid Cloud zu finden. Laut VMware nutzen mittlerweile etwa 76 % der Unternehmen mehrere Clouds, eine Kombination aus öffentlichen und privaten Clouds. Mit Kubernetes können wir Multi-Cloud- und Private-Cloud-Ebenen auf Hardware unserer Wahl aufbauen, und zwar kostengünstig, ohne uns auf eine bestimmte Cloud festzulegen.
Während die Akzeptanz von Kubernetes weiter zunimmt, bestehen weiterhin Bedenken hinsichtlich Kosteneffizienz, Zuverlässigkeit und Sicherheit. Der Übergang von Kubernetes-VMs zur Bare-Metal-Infrastruktur bietet Leistungsvorteile durch den Wegfall der Hypervisor-Schicht, die Vereinfachung von Fehlerbehebungsprozessen und die Maximierung der Ressourcenverfügbarkeit für Anwendungen. Ein Bare-Metal-Setup gibt Unternehmen die volle Kontrolle über Hardwarekomponenten für eine individuelle Optimierung für bestimmte Arbeitslasten. Mit den richtigen Engineering-Praktiken und der Kubernetes-Integration können Unternehmen funktionale Parität mit Public-Cloud-Angeboten erreichen. In der Vergangenheit war die Ausführung von Kubernetes auf Bare-Metal aufgrund der betrieblichen Komplexität mit Herausforderungen verbunden, insbesondere bei der Verwaltung des Cluster-Lebenszyklus. Diese Hindernisse wurden jedoch mit der Einführung von Talos überwunden , worauf wir in diesem Artikel näher eingehen werden.
Talos ist ein sehr schlankes Betriebssystem, das in Golang geschrieben ist. Talos ist als betriebssystemspezifisches Betriebssystem zur Wartung von Kubernetes-Clustern konzipiert. Um die Kubernetes-Infrastruktur zuverlässiger zu machen, müssen wir sicherstellen, dass auf jedem Knoten dieselbe Version des Betriebssystems ausgeführt wird. Talos kann uns helfen, unsere Kubernetes-Infrastruktur zuverlässig und konsistent zu halten, indem es die unveränderliche Philosophie hinzufügt, auf der Talos basiert.
Talos läuft immer als SquashFS-Image, ein schreibgeschütztes Dateisystem unter Linux. Die Gesamtgröße des Talos SquashFS-Images beträgt etwa 80 MB. Talos verzichtet bewusst auf Komponenten wie systemd, GNU-Dienstprogramme, Konsolenpakete, Bash- oder SSH-Binärdateien, um die Angriffsfläche zu minimieren und die Möglichkeit von Sicherheitslücken zu verringern. Stattdessen basiert es auf einer modernen API zur Verwaltung des Systembetriebs.
Talos enthält nur das, was Sie brauchen. Stattdessen wird alles über eine moderne API verwaltet. Talos konzentriert sich stark auf die Idee einer unveränderlichen Infrastruktur.
Was ist eine unveränderliche Infrastruktur?
Unveränderliche Infrastruktur Sobald ein System bereitgestellt ist, können Sie keine Änderungen daran vornehmen. Dieses Konzept wird als unveränderliche Infrastruktur bezeichnet. Wenn eine Änderung in der unveränderlichen Infrastruktur erforderlich ist, wird eine neue Infrastruktur mit den erforderlichen Änderungen erstellt, anstatt die bestehende Infrastruktur zu ändern. Durch eine unveränderliche Infrastruktur werden Staging-, Staging- und Produktionsumgebungen konsistenter. Die Aufrechterhaltung der Konsistenz zwischen Knoten ist bei der Bare-Metal-K8s-Infrastruktur von größter Bedeutung. In dieser Art von Infrastruktur sind unsere Anwendungen eng an das Betriebssystem gekoppelt, was den Nachteil unveränderlicher Systeme darstellt.
Vorteile der Verwendung von Talos
- Talos gewährleistet die Konsistenz im gesamten System und vermeidet Konfigurationsänderungen. Talos nennt dies „Vorhersehbarkeit“.
- Ziel von Talos ist es, die Kubernetes-Infrastruktur vollständig unveränderlich zu machen und so die Zuverlässigkeit, Sicherheit und Konsistenz zu verbessern. Dadurch ist Talos ideal für Bare-Metal-Server mit Kubernetes.
- Talos ist unveränderlich konzipiert und läuft daher im RAM und nicht auf der Festplatte. Da Talos ein SquashFS-Image ist, verfügt es über weniger Schreibpunkte, die kurzlebiger Natur sind.
- Talos ist äußerst sicher.
- Talos ist ein sehr leichtes Betriebssystem mit etwa 12 Binärdateien, die alle zum Ausführen von Kubernetes verwendet werden.
- Talos ist API-gesteuert.
- Talos folgt den Empfehlungen von KSPP (Kernel Self-Protection Project) – KSPP-Dokumentation
Beispiel
Talos eignet sich hervorragend für die Selbstverwaltung von Kubernetes-Clustern, aber Plattformen wie CIVO bieten Unterstützung für die Bereitstellung von Kubernetes-Clustern mit Talos. Hier sind einige Anwendungsfälle für die Ausführung von Kubernetes mit Talos.
1. Edge-Anwendungen:
Zur Verwaltung großer Cluster von Edge-Geräten ist Kubernetes eine der besten Optionen, da es nicht nur für die Container-Orchestrierung konzipiert ist, sondern auch Edge-Geräte effizient verwaltet. Um die Zuverlässigkeit und Sicherheit von Edge-Anwendungen zu gewährleisten, verfügen Sie über ein sicheres und zuverlässiges Kubernetes
2. Kuberntes auf Bare-Metal:
Durch den Einsatz von Kubernetes auf Bare-Metal werden unnötige Abstraktionen beseitigt und unseren Anwendungen die volle Kontrolle über die Hardware gegeben. Talos ist eine ausgezeichnete Wahl für die Bereitstellung von Kubernetes auf Bare-Metal-Servern. Es eliminiert unnötige Konfigurationen und Fehlerbehebungen und erleichtert die Bereitstellung von Kubernetes auf Bare-Metal.
3. Arbeitslasten für KI und maschinelles Lernen:
Kubernetes erweist sich als ideale Plattform zum Testen und Trainieren neuer Modelle für maschinelles Lernen und ermöglicht eine nahtlose Bereitstellung in größeren Umgebungen. Die Wahrung der Konsistenz bei der Bereitstellung ist entscheidend für die Gewährleistung einer sicheren und stabilen Modellbereitstellung. Talos spielt in diesem Prozess eine Schlüsselrolle, indem es eine konsistente Umgebung bereitstellt, die eine zuverlässige Modellskalierung basierend auf der Nachfrage ermöglicht.
Architektur und Design
Die Talos-Architektur besteht aus vielen verschiedenen Komponenten mit definierten gRPC-Schnittstellen. Die Kommunikation zwischen allen Talos-Komponenten erfolgt über gRPC.
Talos-Dateisystempartition
- EFI: Speichert EFI-Startdaten.
- BIOS: Wird für den GRUB-Start der zweiten Stufe verwendet.
- Boot: Wird für den Bootloader verwendet und speichert Initramfs und Kerneldaten.
- Meta: Speichert Metadaten über Talos-Knoten.
- Status: Speichert die Maschinenkonfiguration.
- Ephemeral: Wird auf /var bereitgestellt und zum Speichern temporärer Daten verwendet.
Das Dateisystem von Talos besteht aus drei Schichten:
- rootfs: Dies ist die schreibgeschützte Squashfs-Kernschicht. Hängen Sie dann Squashfs als Loop-Gerät im Speicher ein.
- tmpfs: Dieses Dateisystem wird für laufzeitspezifische Anforderungen verwendet.
- system: Erforderlich für interne Vorgänge.
Talos schreibt beispielsweise nach /system/etc/hosts und bindet es dann an /etc/hosts. Talos macht /etc nicht beschreibbar, sondern nur bestimmte Teile von /etc. /system wird bei jedem Start vollständig neu erstellt. Um beim Start Persistenz zu erreichen, erstellt Talos ein Overlay-Dateisystem. Kubernetes besitzt /var. Dieses Verzeichnis wird von etcd zum Schreiben von Daten verwendet. Wir haben die Option „--preserve“ hinzugefügt, um das Löschen dieser Daten beim Upgrade zu vermeiden. Sie werden nur gelöscht, wenn die Maschine aktualisiert oder zurückgesetzt wird.
Komponenten
talosctl
ist ein CLI-Tool zur Interaktion mit allen Komponenten in Talos. Ähnlich kubectl
wie wir Kube-API verwenden talosctl
, um mit Apid zu interagieren.
- apid: Talos ist API-gesteuert und
apid
für die Bereitstellung von gRPC-Endpunkten für die Interaktion mit verschiedenen Komponenten verantwortlich.apid
Auf jedem Knoten vorhanden, einschließlich der Steuerebene.
Talos-Architektur
- bearbeitet: Es ist für die Verarbeitung von API-Anfragen von Apid und die Durchführung der Ressourcen- und Kontrollverwaltung verantwortlich.
- Trustd: Es handelt sich um einen Daemon-Prozess, der zum Aufbau von Vertrauen in das System verwendet wird. Es wird verwendet, um Vertrauen zwischen Knoten herzustellen.
- udevd: Wird zum Einrichten notwendiger Links in /dev verwendet.
Controller und Ressourcen
- Ressourcen : Sie ähneln Ressourcen in Kubernetes, Ressourcen sind von unterschiedlichem Typ und enthalten Metadaten wie Namespace, Typ usw. Eine Ressource wird durch ihren Namensraum eindeutig identifiziert. Die Ressource „Maschinenkonfiguration“ spiegelt die aktuelle Maschinenkonfiguration wider.
- Controller : In Talos werden Controller als Threads ausgeführt. Ein Controller kann mehrere Ressourcentypen verwalten, und jeder Ressourcentyp kann viele Ressourcen haben. Um Konflikte zu vermeiden, ist nur ein Controller für die Verwaltung eines bestimmten Ressourcentyps im Namespace verantwortlich. Talos speichert die für den Controller definierten Ressourcentypen im Meta-Namespace.
Demo
In diesem Artikel werden wir Docker verwenden, um diese Funktionalität zu demonstrieren, da Bare Metal noch nicht verfügbar ist. Abonnieren Sie unseren Blog, da wir in einem zukünftigen Artikel darüber berichten möchten, wie Talos auf Bare-Metal ausgeführt wird. Wir erfahren, wie Sie mit Docker einen Kubernetes-Cluster erstellen.
Richten Sie Docker- und Talos-Cluster ein
Voraussetzungen
Bevor Sie fortfahren, stellen Sie bitte sicher, dass die folgende Software installiert ist:
- Docker-Engine
- Kubectl
- talosctl
Hinweis: Die ISO-Image-Versionen des Talosctl- und des Talos-Betriebssystems sollten identisch sein. Weitere Informationen finden Sie in den Release-Informationen.
Mac:
brew install siderolabs/tap/talosctl
Linux:
wget https://github.com/siderolabs/talos/releases/download/v1.7.0/talosctl-linux-amd64
chmod +x talosctl-linux-amd64
./talosctl-linux-amd64
sudo mv ./talosctl-linux-amd64 /usr/local/bin
Installieren Sie einen Drei-Knoten-Cluster mit Docker und Talosctl. Der folgende Befehl erstellt einen 3-Knoten-Cluster (Controlplane, Workernode-1, Workernode-2).
talosctl cluster create --workers 2
Lassen Sie uns die Anzahl der erstellten Knoten und die Betriebssysteminformationen überprüfen
kubectl get nodes -o wide
kubectl get node talos-default-worker-1 -o json | jq -r '.status.nodeInfo.osImage'
Lassen Sie uns den Cluster bereinigen und löschen
abschließend
Talos spielt eine wichtige Rolle bei der Verwaltung von Kubernetes-Umgebungen. Seine Einfachheit vereinfacht die Konfiguration von Kubernetes-Clustern erheblich. Die unveränderliche Philosophie von Talos verbessert die Sicherheit und Konsistenz der Infrastruktur erheblich.
Häufig gestellte Fragen
Talos und K3s
Es gibt keinen direkten Vergleich zwischen Talos und k3s. Wenn Sie jedoch die Bereitstellung eines Kubernetes-Clusters in Betracht ziehen, erfordert k3s ein Betriebssystem und weist andere Abhängigkeiten auf, die je nach zugrunde liegendem Betriebssystem variieren. Der Schwerpunkt von Talos liegt auf dem Betrieb von Kubernetes-Clustern unter Verwendung seiner unveränderlichen Philosophie, um seine Sicherheit und Zuverlässigkeit zu gewährleisten. Talos erleichtert die Kubernetes-Bereitstellung.
Welche Binärdateien enthält Talos?
- Die Binärdateien in Talos
init
sind für die Ausführung der Kubelet- und Container-Laufzeit verantwortlich. - Containerd ist zusammen mit runc die Laufzeit in Talos.
- Modprobe wird zum Laden von Modulen für bestimmte Binärdateien verwendet. Module können zu Talos hinzugefügt werden, oder wir können vorgefertigte Module von Image Factory verwenden.
- Verwenden Sie für die Volume-Verwaltung lvm.
- udevd wird verwendet, um Nachrichten vom Kernel zu sammeln und an andere Systeme weiterzuleiten.
- Binärdateien wie xfs_repair werden zum Reparieren von XFS-Dateisystemen verwendet.
Ist Talos kostenlos?
Talos ist ein kostenloses Open-Source-Betriebssystem, das unter der Mozilla Public License Version 2.0 steht und eine kommerzielle Nutzung ermöglicht. Weitere Informationen finden Sie im Talos Github-Repository .
Warum Talos verwenden?
Talos macht Kubernetes-Umgebungen sicherer und zuverlässiger. Wie wir alle wissen, eignet sich Talos für verteilte Systeme wie Kubernetes. Wenn Sie möchten, dass Ihre Kubernetes-Umgebung sicherer und zuverlässiger ist, sollten Sie Talos verwenden.
Können wir Talos auf Bare-Metal betreiben?
Talos ist ideal, wenn Sie Kubernetes auf Bare Metal konfigurieren möchten. Bleiben Sie dran, um zu erfahren, wie Sie Talos auf Bare-Metal einsetzen, abonnieren Sie unsere Beiträge oder kontaktieren Sie uns direkt, um das Thema weiter zu besprechen.
Wer unterstützt Talos zusätzlich?
- Sidero Labs
- Für die Implementierung und den Support wird CloudRaft verwendet. Kontaktieren Sie uns , um weitere Informationen zu besprechen.
RustDesk stellt inländische Dienste wegen grassierendem Betrug ein. Apple veröffentlicht M4-Chip. Taobao (taobao.com) startet die Arbeit zur Optimierung der Webversion neu. Oberstufenschüler erstellen ihre eigene Open-Source-Programmiersprache als Geschenk für das Erwachsenwerden – kritische Kommentare von Internetnutzern: Verlassen Sie sich auf die Verteidigung Yunfeng ist von Alibaba zurückgetreten und plant , in Zukunft Java 17 als Ziel für unabhängige Spieleprogrammierer . Es ist die am häufigsten verwendete Java LTS-Version mit einem Marktanteil von 70 % und Windows 11 gehen weiter zurück. Google unterstützt Hongmeng bei der Übernahme von Android-Telefonen;Dieser Artikel wurde zuerst auf Yunyunzhongsheng ( https://yylives.cc/ ) veröffentlicht, jeder ist herzlich willkommen.