Kubernetes
Kubernetes automatisiert die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen auf Servern in Rechenzentren und in der Cloud. Die quelloffene Software orchestriert Container, die in Technologien wie Docker oder anderen Container-Laufzeitumgebungen erstellt wurden.
Kubernetes eignet sich für die Verwaltung großer, komplexer Anwendungen mit vielen Containern. Daher ist es heute ein zentraler Bestandteil für den Betrieb moderner verteilter Anwendungen, weil es auch den Betrieb von stark verteilten Anwendungen auf Basis von Microservices-Architekturen vereinfacht.
Kubernetes unterstützt die kontinuierliche Integration und Auslieferung von Software (CI/CD) in Entwicklung, Test und Produktion, indem es leistungsfähige Schnittstellen und Werkzeuge zur Konfiguration und Überwachung containerisierter Anwendungen bereitstellt, die sich flexibel integrieren lassen. Es vereinfacht und standardisiert die Konfiguration von Anwendungen, ermöglicht das schrittweise Ausrollen von Anwendungen einschließlich Updates und rollt diese bei Problemen automatisch zurück.
Kubernetes sorgt dafür, dass Anwendungen zuverlässig und konsistent ausgeführt werden. Die Software ermöglicht horizontale Skalierung, indem es die Anzahl der Container automatisch an die aktuelle Last und auf verschiedene Server verteilen kann. Kubernetes sorgt für Selbstheilung im Betrieb, indem es fehlerhafte Container automatisch neu startet, nicht mehr reagierende Container ersetzt und solche Container entfernt, die nicht mehr den definierten Anforderungen entsprechen.
Kubernetes verwaltet die CPU- und Speicherressourcen für Container und sorgt dafür, dass die containerisierten Anwendungen die Kapazitäten auf den Servern nicht überschreiten, die ihnen zugewiesen sind. Es ermöglicht Lastverteilung, indem es den Datenverkehr automatisch auf die Container verteilt. Kubernetes unterstützt Service Discovery, also Mechnismen zur automatischen Erkennung von Diensten.
Kubernetes wird von verschiedenen Cloud-Anbietern als Managed Service angeboten. Da Kubernetes eine quelloffene Software ist und viele Integrationsmöglichkeiten bietet, können Systemadministratoren es auch selbst in Cloud- und On-Premises-Umgebungen betreiben.
Kubernetes hat eine große Community und ein umfangreiches Ökosystem mit vielen Werkzeugen und Erweiterungen, von denen nachfolgend einige aufgeführt werden, die aus dem Blickwinkel der Entwicklung und automatisierten Bereitstellung von Software sehr nützlich sein können:
Helm · Amazon EKS · CloudNativePG · Container Registries · External Secrets · GitOps · Google GKE · K9s · Kubectl · Kustomize · LKE · Tilt
Wenn Sie Fragen zum Schwerpunkt Kubernetes haben, berate ich Sie dazu gerne. Weitere Informationen finden Sie auf der Seite zu meinen Dienstleistungen rund um Softwareentwicklung.