bg_image
header

Helm

Helm ist ein Open-Source-Paketmanager für Kubernetes, eine Container-Orchestrierungsplattform. Mit Helm können Anwendungen, Dienste und Konfigurationen als sogenannte Charts definiert, verwaltet und installiert werden. Ein Helm-Chart ist im Grunde eine Sammlung von YAML-Dateien, die alle Ressourcen und Abhängigkeiten einer Anwendung in Kubernetes beschreiben.

Helm vereinfacht den Prozess der Bereitstellung und Verwaltung komplexer Kubernetes-Anwendungen. Statt alle Kubernetes-Ressourcen manuell zu erstellen und zu konfigurieren, kann man ein Helm-Chart verwenden, um dies automatisiert und wiederholbar zu tun. Helm bietet Funktionen wie Versionskontrolle, Rollbacks (zurücksetzen auf frühere Versionen einer Anwendung) und eine einfache Möglichkeit, Anwendungen zu aktualisieren oder zu deinstallieren.

Hier sind einige der wichtigsten Konzepte:

  • Charts: Ein Helm-Chart ist ein Paket, das Kubernetes-Ressourcen beschreibt (ähnlich wie ein Debian- oder RPM-Paket).
  • Releases: Wenn ein Helm-Chart installiert wird, wird dies als "Release" bezeichnet. Jede Installation eines Charts erstellt einen neuen Release, der aktualisiert oder entfernt werden kann.
  • Repositories: Helm-Charts können in verschiedenen Helm-Repositories gespeichert werden, ähnlich wie Code in Git-Repositories gespeichert wird.

Helm vereinfacht also die Verwaltung und Bereitstellung von Kubernetes-Anwendungen erheblich.

 


Kubernetes

Kubernetes (oft als "K8s" abgekürzt) ist eine Open-Source-Plattform für die Container-Orchestrierung und -Verwaltung. Entwickelt von Google und jetzt von der Cloud Native Computing Foundation (CNCF) verwaltet, bietet Kubernetes eine automatisierte Bereitstellung, Skalierung und Verwaltung von Anwendungscontainern über verschiedene Hosts hinweg.

Hier sind einige Schlüsselkonzepte und -funktionen von Kubernetes:

  1. Container-Orchestrierung: Kubernetes ermöglicht die automatisierte Bereitstellung, Aktualisierung und Skalierung von Containeranwendungen. Es verwaltet Container über eine Gruppe von Hosts hinweg und stellt sicher, dass die Anwendungen stets verfügbar sind, indem es sie bei Bedarf neu startet oder auf anderen Hosts repliziert.

  2. Deklarative Konfiguration: Kubernetes verwendet YAML-basierte Konfigurationsdateien, um die gewünschte Zustandsbeschreibung der Anwendungen und Infrastruktur anzugeben. Entwickler können die gewünschten Ressourcen wie Pods, Services und Deployments deklarativ definieren, und Kubernetes sorgt dafür, dass der tatsächliche Zustand mit dem deklarativen Zustand übereinstimmt.

  3. Pods und Services: Ein Pod ist die kleinste Bereitstellungseinheit in Kubernetes und kann einen oder mehrere Container enthalten. Kubernetes verwaltet Pods als Gruppe und ermöglicht die Skalierung von Pods sowie die Lastenausgleichsdienste durch Services.

  4. Skalierbarkeit und Lastenausgleich: Kubernetes bietet Funktionen für die automatische Skalierung von Anwendungen basierend auf CPU-Nutzung, Benutzerdefinierten Metriken oder anderen Parametern. Es unterstützt auch Lastenausgleich für den gleichmäßigen Traffic-Verteilung auf verschiedene Pods.

  5. Selbstheilung: Kubernetes überwacht ständig den Zustand der Anwendungen und automatisiert die Wiederherstellung von fehlerhaften Containern oder Pods. Es kann auch automatisch fehlerhafte Knoten erkennen und ersetzen, um die Verfügbarkeit zu gewährleisten.

  6. Plattformunabhängigkeit: Kubernetes ist plattformunabhängig und kann in verschiedenen Umgebungen, sei es On-Premises, in der Cloud oder in hybriden Umgebungen, eingesetzt werden. Es unterstützt verschiedene Container-Runtime-Umgebungen wie Docker, containerd, und CRI-O.

Insgesamt ermöglicht Kubernetes eine effiziente Verwaltung und Skalierung von Containeranwendungen in einer verteilten Umgebung und hat sich als Standardplattform für Container-Orchestrierung in der Industrie etabliert.