← Zurück zur Bibliothek
Infrastructure Anbieter: Cloud Native Computing Foundation

Kubernetes

Kubernetes (K8s) ist die Industriestandard-Plattform zur Orchestrierung containerisierter Anwendungen im großen Maßstab. Ursprünglich von Google entwickelt und 2014 als Open Source veröffentlicht, automatisiert Kubernetes die Bereitstellung, Skalierung und den Betrieb von Anwendungscontainern über Cluster von Hosts hinweg. Es ist unverzichtbar für moderne Cloud-Native-Anwendungen, Microservices-Architekturen und produktive KI/ML-Systeme geworden und bietet Features wie Auto-Skalierung, Self-Healing, Load Balancing und Rolling Updates.

Kubernetes
kubernetes k8s orchestrierung container cloud-native devops

Was ist Kubernetes?

Kubernetes ist ein Open-Source-Container-Orchestrierungssystem, das die Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen automatisiert. Entstanden aus Googles internem Borg-System, bietet Kubernetes (Griechisch für 'Steuermann') ein Framework zum resilienten Betrieb verteilter Systeme. Es übernimmt die Planung von Containern über einen Cluster von Maschinen, verwaltet Workload-Platzierung, skaliert Anwendungen basierend auf Nachfrage und stellt durch Self-Healing-Mechanismen sicher, dass Anwendungen gesund bleiben. Kubernetes ist zum De-facto-Standard für Container-Orchestrierung geworden, mit Adoption durch jeden großen Cloud-Anbieter und Millionen von Produktionsbereitstellungen weltweit.

Im Kern verwaltet Kubernetes Pods (Gruppen von einem oder mehreren Containern), Deployments (deklarative Updates für Pods), Services (Netzwerk-Abstraktion für Zugriff auf Pods) und persistenten Speicher. Es abstrahiert die zugrunde liegende Infrastruktur und ermöglicht es Anwendungen, konsistent über On-Premises-Rechenzentren, Public Clouds (AWS, Azure, GCP) und Hybrid-Umgebungen hinweg zu laufen. Für KI/ML-Workloads ermöglicht Kubernetes verteiltes Training über GPU-Cluster, bedient Inferenz-Endpunkte mit Auto-Skalierung und orchestriert komplexe ML-Pipelines von Datenvorverarbeitung bis Modellbereitstellung.

Kernkomponenten und Architektur

Kubernetes-Objekte

  • Pods - Kleinste bereitstellbare Einheiten mit einem oder mehreren Containern
  • Deployments - Deklarative Updates und Rollbacks für Pods
  • Services - Stabile Netzwerk-Endpunkte für Zugriff auf Pods
  • StatefulSets - Verwaltung zustandsbehafteter Anwendungen mit persistenter Identität
  • DaemonSets - Stellen sicher, dass alle Knoten eine Kopie eines Pods ausführen (Logging, Monitoring)
  • Jobs/CronJobs - Ausführung von Batch-Tasks und geplanten Workloads
  • ConfigMaps/Secrets - Verwaltung von Konfiguration und sensiblen Daten
  • Persistent Volumes - Speicher-Abstraktion für zustandsbehaftete Workloads

Hauptmerkmale

  • Auto-Skalierung - Horizontal Pod Autoscaler (HPA) skaliert basierend auf Metriken
  • Self-Healing - Startet fehlgeschlagene Container automatisch neu und ersetzt Pods
  • Load Balancing - Verteilt Traffic über Pod-Replikas
  • Rolling Updates - Zero-Downtime-Bereitstellungen mit automatischem Rollback
  • Service Discovery - DNS-basierte Erkennung für interne Services
  • Storage-Orchestrierung - Automatisches Mounten lokaler, Cloud- oder Netzwerk-Speicher
  • Ressourcenverwaltung - CPU/Speicher-Anforderungen und -Limits pro Container
  • Multi-Tenancy - Namespaces zur Isolation von Workloads und Teams

Kubernetes für KI/ML-Workloads

Kubernetes ist für produktive KI/ML-Systeme kritisch geworden:

  • GPU-Scheduling mit NVIDIA GPU Operator und Device-Plugins
  • Verteiltes Training über Multi-GPU/Multi-Node-Cluster
  • Modell-Serving mit Auto-Skalierung von Inferenz-Endpunkten (KServe, Seldon)
  • ML-Pipeline-Orchestrierung (Kubeflow, Argo Workflows)
  • Jupyter-Notebook-Bereitstellungen für Data-Science-Teams
  • Experiment-Tracking und Model-Registry-Integration
  • Ressourcen-Quotas für faire GPU-Zuteilung über Teams hinweg
  • Batch-Job-Scheduling für Training und Hyperparameter-Tuning

Anwendungsfälle

  • Microservices-Orchestrierung - Bereitstellung und Verwaltung verteilter Anwendungen
  • CI/CD-Pipelines - Automatisierte Build-, Test- und Bereitstellungs-Workflows
  • ML-Modell-Serving - Produktions-Inferenz mit Auto-Skalierung
  • Verteiltes Training - Multi-GPU-Modelltraining über Knoten hinweg
  • Multi-Cloud-Bereitstellungen - Konsistentes App-Verhalten über Cloud-Anbieter hinweg
  • Hybrid Cloud - Workloads über On-Prem und Public Cloud verteilen
  • Edge Computing - Bereitstellung an Edge-Standorten mit K3s/Lightweight-K8s
  • Datenverarbeitung - Spark, Kafka, Elasticsearch auf Kubernetes ausführen
  • Zustandsbehaftete Anwendungen - Datenbanken, Message Queues mit StatefulSets
  • Batch-Analytics - Datenverarbeitungs-Jobs mit CronJobs planen

Kubernetes-Ökosystem und Tools

Kubernetes hat ein umfangreiches Ökosystem von Tools und Erweiterungen:

  • Helm - Paketmanager für Kubernetes-Anwendungen
  • Kubeflow - ML-Toolkit zur Bereitstellung von ML-Workflows auf Kubernetes
  • Istio - Service Mesh für fortgeschrittenes Traffic-Management und Sicherheit
  • Prometheus - Monitoring und Alerting für Kubernetes-Cluster
  • ArgoCD - GitOps Continuous Delivery für Kubernetes
  • Cert-manager - Automatisches TLS-Zertifikatsmanagement
  • Ingress-Controller - NGINX, Traefik für HTTP(S)-Routing
  • KServe - Modell-Serving-Plattform für ML-Inferenz

Erste Schritte mit Kubernetes

Beginnen Sie mit dem Lernen von Kubernetes mit lokalen Entwicklungstools. Installieren Sie Minikube (Single-Node-Cluster) oder Docker Desktop mit aktiviertem Kubernetes. Verwenden Sie kubectl (das Kommandozeilen-Tool) zur Interaktion mit Clustern. Stellen Sie Ihre erste App bereit mit `kubectl create deployment nginx --image=nginx`, exponieren Sie sie mit `kubectl expose deployment nginx --port=80 --type=LoadBalancer` und zeigen Sie Pods mit `kubectl get pods` an. Lernen Sie Kubernetes-Konzepte durch offizielle Tutorials auf kubernetes.io/docs/tutorials.

Für Produktion wählen Sie einen verwalteten Kubernetes-Service (GKE, EKS, AKS) oder stellen Sie selbst mit kubeadm bereit. Verwenden Sie Helm-Charts für komplexe Anwendungen statt rohem YAML. Implementieren Sie Monitoring mit Prometheus und Logging mit Fluentd/ELK-Stack. Für KI/ML-Workloads installieren Sie NVIDIA GPU Operator für GPU-Unterstützung, stellen Sie Kubeflow für ML-Pipelines bereit oder verwenden Sie KServe für Modell-Serving. Kubernetes-Dokumentation und CNCF-Training bieten umfassende Ressourcen für Produktionsbereitstellungen.

Integration mit 21medien-Services

21medien verwendet Kubernetes als Grundlage für die Bereitstellung von Kunden-KI-Anwendungen im großen Maßstab. Wir entwerfen und implementieren produktionsreife Kubernetes-Cluster optimiert für ML-Workloads, konfigurieren GPU-Scheduling für verteiltes Training und stellen Auto-Skalierungs-Inferenz-Services bereit. Unser Team bietet Kubernetes-Beratung, Architektur-Design, Migrationsdienste (Docker Compose zu Kubernetes) und verwaltete Kubernetes-Operationen. Wir spezialisieren uns auf Kubeflow für ML-Pipelines, GPU-Cluster-Optimierung und kosteneffizientes Ressourcenmanagement für KI-Workloads über Cloud-Anbieter hinweg.

Preise und Zugang

Kubernetes selbst ist kostenlos und Open-Source. Kosten entstehen durch Infrastruktur und optionale verwaltete Services. Verwaltete Kubernetes-Services: GKE (Google), EKS (Amazon), AKS (Azure) berechnen ~0,10 $/Stunde für Control Plane plus Compute-Kosten für Worker-Knoten. Selbstverwaltetes Kubernetes hat keine Lizenzkosten, erfordert aber operative Expertise. Worker-Knoten-Kosten variieren: Nur-CPU-Knoten 0,05-0,50 $/Stunde, GPU-Knoten 0,60-8 $/Stunde je nach GPU-Typ. Für KI-Workloads berücksichtigen Sie Speicher (Persistent Volumes ~0,10-0,20 $/GB-Monat), Netzwerk (Load Balancer ~20 $/Monat) und Monitoring-Tools. Produktions-Cluster kosten typischerweise 500-5000 $/Monat je nach Größe, wobei GPU-lastige ML-Cluster 2000-50.000 $/Monat kosten.

Offizielle Ressourcen

https://kubernetes.io