K3s: Die leichtgewichtige Kubernetes-Lösung für Edge und IoT
von Stefan Sørensen

K3s: Die leichtgewichtige Kubernetes-Lösung für Edge und IoT

K3s ist eine leichtgewichtige Kubernetes-Distribution für Edge Computing und IoT. Erfahren Sie, wie Sie K3s installieren, konfigurieren und auf AWS EC2 betreiben.

KubernetesK3sEdge ComputingIoTDevOps

Entwickelt von Rancher Labs, bietet K3s eine schlankere Alternative zum herkömmlichen Kubernetes, ohne dabei an Funktionalität einzubüßen. Mit einer reduzierten Speicher- und CPU-Belastung eignet sich K3s ideal für Umgebungen mit begrenzten Ressourcen, während es gleichzeitig eine einfache Installation und Verwaltung ermöglicht.

Einleitung

In einer zunehmend vernetzten Welt, in der Edge Computing und das Internet der Dinge (IoT) eine immer wichtigere Rolle spielen, wird die effiziente Verwaltung von Containeranwendungen entscheidend. Hier kommt K3s ins Spiel – eine innovative Lösung, die speziell für diese anspruchsvollen Umgebungen entwickelt wurde.

K3s ist eine leichtgewichtige Kubernetes-Distribution, die von Rancher Labs entwickelt wurde und sich durch ihre Einfachheit, Skalierbarkeit und optimierte Ressourcennutzung auszeichnet. In diesem Blogbeitrag werde ich einen tiefen Einblick in die Welt von K3s geben – seine Funktionalitäten, Vorteile und Anwendungsfälle – und zeigen, warum es die perfekte Wahl für Edge Computing, IoT-Geräte und ressourcenbeschränkte Umgebungen ist.

Grundlagen zu Kubernetes

Kubernetes ist ein Open-Source-System zur Automatisierung, Bereitstellung und Skalierung von Container-Anwendungen. Es bietet eine Plattform für die Orchestrierung von Containern und ermöglicht die effiziente Verwaltung von Anwendungen in dynamischen Umgebungen.

Kubernetes spielt eine entscheidende Rolle bei der Verwaltung und Skalierung von Containern in verteilten Systemen. Durch seine Fähigkeiten zur Automatisierung und Orchestrierung erleichtert es die Bereitstellung und Verwaltung von Anwendungen in Cloud-Umgebungen.

Was ist MicroK8s?

MicroK8s ist eine Kubernetes-Distribution, die für die lokale Entwicklung und das Testen von Kubernetes-Anwendungen konzipiert ist. Es ermöglicht die einfache Bereitstellung von Kubernetes-Clustern auf einem einzelnen Rechner. Für Technik-Enthusiasten ist MicroK8s von theoretischer Relevanz, da es Einblicke in die Funktionsweise von Kubernetes bietet und die Möglichkeit schafft, Kubernetes-Anwendungen lokal zu testen und zu entwickeln.

Unterschied und Stärken von MicroK8s, Kubernetes (K8s) und K3s

MicroK8s, Kubernetes und K3s sind Container-Orchestrierungstools:

  • MicroK8s ist eine vereinfachte Version von Kubernetes für lokale Entwicklungs- und Testumgebungen.
  • Kubernetes (K8s) ist eine Open-Source-Plattform zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Anwendungscontainern.
  • K3s ist eine leichtgewichtige Kubernetes-Distribution, die für Edge Computing und IoT-Umgebungen optimiert ist. K3s zeichnet sich durch seine Einfachheit, Geschwindigkeit und Effizienz aus.

Jedes Tool hat seine eigenen Stärken und Anwendungsbereiche, wobei K3s speziell für Edge Computing und IoT-Szenarien optimiert ist.

Architektur von K3s

Die Architektur von K3s umfasst:

  1. Server-Knoten führen den Befehl k3s server aus und verwalten die Steuerungsebene und die Datenbankkomponenten.
  2. Agenten-Knoten führen den Befehl k3s agent aus und enthalten keine Datenbank- oder Steuerungsebenenkomponenten.

Installation ist möglich als:

  1. Einzelserver-Setup: Ein Server mit eingebetteter SQLite-Datenbank.
  2. Hochverfügbarkeit (HA): Mehrere Server mit eingebetteter etcd-Datenbank.
  3. Agenten-Registrierung: Agenten verbinden sich über eine feste Adresse und WebSocket-Verbindungen.

Diese Struktur ermöglicht eine einfache und skalierbare Verwaltung von Kubernetes-Clustern.

Betrieb von K3s

Für die Installation, Konfiguration und den Betrieb von K3s auf einem AWS EC2-Instanz können folgende Schritte durchgeführt werden:

Installation auf AWS EC2

  • Erstellen Sie eine neue EC2-Instanz in Ihrer AWS-Konsole.
  • Wählen Sie eine geeignete Instanzgröße und das gewünschte Betriebssystem.
  • Stellen Sie sicher, dass die erforderlichen Ports (z. B. 6443 für Kubernetes-API) für den Zugriff von außen offen sind.
  • Verbinden Sie sich mit Ihrer EC2-Instanz über SSH.

Führen Sie dann die Installation von K3s mit dem folgenden Befehl aus:

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

Konfiguration

Überprüfen Sie den Status von K3s, um sicherzustellen, dass die Installation erfolgreich war:

sudo systemctl status k3s

Verbinden Sie sich zur Kubernetes-Cluster-API:

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

Betrieb

Überprüfen Sie die Verfügbarkeit von K3s-Ressourcen:

kubectl get nodes

Fahren Sie fort, indem Sie Ihre Kubernetes-Ressourcen erstellen und verwalten, z. B. Pods, Services usw.

Praxisbeispiel

Angenommen, Sie möchten einen einfachen Webserver auf K3s bereitstellen. Sie können dies mit einer Deployment-Datei tun. Erstellen Sie eine Datei namens webserver.yaml mit folgendem Inhalt:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webserver
spec:
  replicas: 3
  selector:
    matchLabels:
      app: webserver
  template:
    metadata:
      labels:
        app: webserver
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

Wenden Sie dann die Konfiguration an:

kubectl apply -f webserver.yaml

Überprüfen Sie den Status des Deployments:

kubectl get deployment webserver

Sobald das Deployment bereit ist, können Sie den Webserver von Ihrer EC2-Instanz aus zugänglich machen, indem Sie den öffentlichen DNS der Instanz und den zugehörigen Port verwenden.

Dieses Praxisbeispiel veranschaulicht die nahtlose Installation, Konfiguration und den Betrieb von K3s auf einer AWS EC2-Instanz und zeigt, wie schnell Sie eine Anwendung auf Kubernetes bereitstellen können.

Zusammenfassung und Ausblick

In diesem Blogbeitrag habe ich einen Einblick in die Installation, Konfiguration und den Betrieb von K3s auf einer AWS EC2-Instanz gegeben. K3s, eine leichtgewichtige Kubernetes-Distribution, bietet eine optimierte Lösung für Edge Computing, IoT und ressourcenbeschränkte Umgebungen.

Zunächst habe ich die Schritte zur Installation von K3s auf einer EC2-Instanz detailliert beschrieben, gefolgt von der Konfiguration für den Zugriff auf die Kubernetes-Cluster-API. Anschließend habe ich den Betrieb von K3s demonstriert, die Verfügbarkeit von Ressourcen überprüft und ein praktisches Beispiel für die Bereitstellung eines Webservers gezeigt.

Der Einsatz von K3s ermöglicht eine schnellere Bereitstellung von Anwendungen, eine effizientere Ressourcennutzung und eine einfachere Verwaltung von Kubernetes-Clustern, insbesondere in Umgebungen mit begrenzten Ressourcen.

In einem nächsten Beitrag könnte ich tiefer in fortgeschrittene Funktionen von K3s eintauchen, etwa das Hinzufügen weiterer Knoten zum Cluster, das Verwalten persistenter Speicherlösungen oder das Implementieren von Lastenausgleich und Skalierungsoptionen.

Insgesamt bietet K3s eine vielversprechende Lösung für die Herausforderungen des Edge Computing und des IoT und wird voraussichtlich weiterhin an Bedeutung gewinnen, da Unternehmen nach effizienten und skalierbaren Möglichkeiten suchen, um ihre verteilten Anwendungen zu verwalten.

Fazit

Die Installation, Konfiguration und der Betrieb von K3s auf einer AWS EC2-Instanz bieten eine effektive Lösung für die Verwaltung von Kubernetes-Clustern in ressourcenbeschränkten Umgebungen wie Edge Computing und IoT. Durch seine Leichtgewichtigkeit und optimierte Ressourcennutzung ermöglicht K3s eine schnellere Bereitstellung von Anwendungen und eine einfachere Verwaltung von Kubernetes-Infrastrukturen.

Die einfache Installation und Konfiguration, gepaart mit der Funktionsvielfalt von Kubernetes, machen K3s zu einer attraktiven Option für Entwickler und Betreiber, die eine skalierbare und effiziente Plattform für verteilte Anwendungen benötigen.

Durch die fortschreitende Entwicklung und das Engagement der Open-Source-Community ist zu erwarten, dass K3s weiterhin innovative Funktionen und Verbesserungen bietet, um den Anforderungen einer sich ständig verändernden Technologielandschaft gerecht zu werden.

Insgesamt ist K3s eine vielversprechende Alternative für Unternehmen, die nach einer schlanken und dennoch leistungsstarken Lösung für ihre Kubernetes-Bedürfnisse suchen, und bietet eine solide Grundlage für die Zukunft des Container-Managements im Edge Computing und darüber hinaus.

Quellen

Stefan Sørensen
Stefan Sørensen
Cloud Enterprise Architect