Kubernetes: Unterschied zwischen den Versionen

Aus InkluPedia
(link San Francisco)
(+)
 
(39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[File:Kubernetes.png|thumb|Architekturdiagramm von Kubernetes]]
{{Infobox Software
'''Kubernetes''' (kurz '''K8s''') ist ein Open-Source-System um Container wie [[Docker (Software)|Docker]] oder CoreOS (rkt) automatisch zu verteilen, zu skalieren und zu verwalten. Das System wurde ursprünglich von [[Google Inc.|Google]] entwickelt und wird von der Cloud Native Computing Foundation (CNCF) der Linux Foundation verwaltet. Weitere Partner sind unter anderem AT&T, Box, Cisco, Cloud Foundry Foundation, CoreOS, Cycle Computing, Docker, eBay, Goldman Sachs, Huawei, IBM, Intel, Joyent, Kismatic, Mesosphere, Red Hat, Switch SUPERNAP, Twitter, Univa, VMware und Weaveworks.<ref name="techcrunch">[https://techcrunch.com/2015/07/21/as-kubernetes-hits-1-0-google-donates-technology-to-newly-formed-cloud-native-computing-foundation-with-ibm-intel-twitter-and-others/ As Kubernetes Hits 1.0, Google Donates Technology To Newly Formed Cloud Native Computing Foundation | TechCrunch, Jul 21, 2015]</ref>
| Logo              = [[File:Kubernetes_logo.svg|frameless|250px|Logo]]
| Screenshot        =
| Beschreibung      =
| Maintainer        = Cloud Native Computing Foundation
| Hersteller        = [[Google LLC|Google]]
| Erscheinungsjahr  = 2014
| AktuelleVersion                  = 1.29<ref>[https://github.com/kubernetes/kubernetes/releases Releases · kubernetes/kubernetes · GitHub]</ref>
| AktuelleVersionFreigabeDatum      = 13. Dezember 2023
| AktuelleVorabVersion              =
| AktuelleVorabVersionFreigabeDatum =
| Programmiersprache = Go
| Kategorie          = Container-Orchestrierung
| Lizenz            = Apache License 2.0
| Deutsch            = nein
| Website            = [https://kubernetes.io/ kubernetes.io]
}}
[[Datei:Kubernetes.png|mini|hochkant=1.6|Architekturdiagramm von Kubernetes]]
'''Kubernetes''' (kurz '''K8s''') ist ein Open-Source-System um Container wie [[Docker (Software)|Docker]] (bis Kubernetes Version 1.20) oder CoreOS (rkt) automatisch zu verteilen, zu skalieren und zu verwalten. Das System wurde ursprünglich von [[Google Inc.|Google]] entwickelt und wird von der Cloud Native Computing Foundation (CNCF) der Linux Foundation verwaltet. Weitere Partner sind unter anderem AT&T, Box, Cisco, Cloud Foundry Foundation, CoreOS, Cycle Computing, Docker, eBay, Goldman Sachs, Huawei, IBM, Intel, Joyent, Kismatic, Mesosphere, Red Hat, Switch SUPERNAP, [[Twitter]], Univa, VMware und Weaveworks.<ref name="techcrunch">[https://techcrunch.com/2015/07/21/as-kubernetes-hits-1-0-google-donates-technology-to-newly-formed-cloud-native-computing-foundation-with-ibm-intel-twitter-and-others/ As Kubernetes Hits 1.0, Google Donates Technology To Newly Formed Cloud Native Computing Foundation | TechCrunch, Jul 21, 2015]</ref>


Der Quellcode von Kubernetes steht auf GitHub zur Verfügung.<ref>[https://github.com/kubernetes/kubernetes/ GitHub - kubernetes/kubernetes: Production-Grade Container Scheduling and Management]</ref> Kubernetes ist größtenteils in Googles Programmiersprache Go implementiert und steht unter der Apache License 2.0.<ref name="prolinux16">[http://www.pro-linux.de/news/1/24603/kubernetes-16-ver%C3%B6ffentlicht.html Kubernetes 1.6 veröffentlicht - Pro-Linux, 30. März 2017]</ref> Der Name ''Kubernetes'' stammt aus dem Griechischen und bedeutet etwa ''Steuermann'' oder ''Pilot''.<ref name="what">[https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ What is Kubernetes? - Kubernetes]</ref>
Der Quellcode von Kubernetes steht auf GitHub zur Verfügung.<ref>[https://github.com/kubernetes/kubernetes/ GitHub - kubernetes/kubernetes: Production-Grade Container Scheduling and Management]</ref> Kubernetes ist größtenteils in Googles Programmiersprache Go implementiert und steht unter der Apache License 2.0.<ref name="prolinux16">[http://www.pro-linux.de/news/1/24603/kubernetes-16-ver%C3%B6ffentlicht.html Kubernetes 1.6 veröffentlicht - Pro-Linux, 30. März 2017]</ref> Der Name ''Kubernetes'' stammt aus dem Griechischen und bedeutet etwa ''Steuermann'' oder ''Pilot''.<ref name="what">[https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ What is Kubernetes? - Kubernetes]</ref> Mit Plattformen wie den Open-Source-Plattformen OpenFaaS, Fission, OpenWhisk und Kubeless lassen sich FaaS-Anwendung (Function as a Service) mit Kubernetes kombinieren.<ref>[https://www.heise.de/developer/artikel/Kubeless-FaaS-auf-Kubernetes-4235153.html Kubeless – FaaS auf Kubernetes | heise Developer, 30.11.2018]</ref> In die [[Linux]]-Distribution Ubuntu integriert das [[Vereinigtes Königreich|britische]] Unternehmen Canonical die Container-Lösungen MicroK8s und Charmed Kubernetes. MicroK8s ist für Edge-Umgebungen und IoT-Anwendungen gedacht, Charmed Kubernetes hingegen für Multi-Cloud- und Hybrid-Cloud-Produktionsumgebungen.<ref>[https://www.dev-insider.de/microk8s-und-charmed-kubernetes-auf-neuestem-stand-a-958351/ MicroK8s und Charmed Kubernetes auf neuestem Stand, 26.08.2020]</ref>


== Geschichte ==
== Geschichte ==
Kubernetes wurde von Google im Jahr 2014 gestartet und basiert auf Googles 15-jähriger Erfahrung mit ihrer Lösung namens ''Borg''.<ref name="what"/> Eric Brewer von Google stellte Kubernetes im Juni 2014 auf einer Konferenz in [[San Francisco]] vor.<ref>[https://www.wired.com/2014/06/google-kubernetes/ Google Open Sources Its Secret Weapon in Cloud Computing | WIRED, 06.10.14]</ref> Am 6. April 2015 kündigte CoreOS Inc. Tectonic an.<ref>[https://coreos.com/blog/announcing-tectonic.html Announcing Tectonic: The Commercial Kubernetes Platform, April 6, 2015]</ref> CoreOS Inc. stellte mit Tectonic ein Werkzeug zur Verwaltung von Container-Flotten vor. Kubernetes übernimmt dabei die Orchestrierung. Google stellte über seine eigene Risikokapital-Gesellschaft Goolgle Ventures für Tectonic 12 Millionen US-Dollar bereit, weitere acht Millionen steuern andere Investoren bei.<ref>[http://www.pro-linux.de/news/1/22198/coreos-und-kubernetes-verbinden-sich-zu-tectonic.html CoreOS und Kubernetes verbinden sich zu Tectonic - Pro-Linux, 7. April 2015]</ref> Am 21. Juli 2015 wurde Kubernetes 1.0 veröffentlicht.<ref name="techcrunch"/>
Kubernetes wurde von Google im Jahr 2014 als Project Seven<ref name="heise7074353">[https://www.heise.de/news/Abgedockt-Kubernetes-1-24-Stargazer-richtet-den-Blick-zu-den-Sternen-7074353.html Abgedockt: Kubernetes 1.24 Stargazer richtet den Blick zu den Sternen | heise online, 04.05.2022]</ref> gestartet und basiert auf Googles 15-jähriger Erfahrung mit ihrer Lösung namens ''Borg''.<ref name="what"/> Eric Brewer von Google stellte Kubernetes im Juni 2014 auf einer Konferenz in [[San Francisco]] vor.<ref>[https://www.wired.com/2014/06/google-kubernetes/ Google Open Sources Its Secret Weapon in Cloud Computing | WIRED, 06.10.14]</ref> Am 6. April 2015 kündigte CoreOS Inc. Tectonic an.<ref>[https://coreos.com/blog/announcing-tectonic.html Announcing Tectonic: The Commercial Kubernetes Platform, April 6, 2015]</ref> CoreOS Inc. stellte mit Tectonic ein Werkzeug zur Verwaltung von Container-Flotten vor. Kubernetes übernimmt dabei die Orchestrierung. Google stellte über seine eigene Risikokapital-Gesellschaft Google Ventures <!-- nicht Goolgle Ventures--> für Tectonic 12 Millionen US-Dollar bereit, weitere acht Millionen steuerten andere Investoren bei.<ref>[http://www.pro-linux.de/news/1/22198/coreos-und-kubernetes-verbinden-sich-zu-tectonic.html CoreOS und Kubernetes verbinden sich zu Tectonic - Pro-Linux, 7. April 2015]</ref> Am 21. Juli 2015 wurde Kubernetes 1.0 veröffentlicht.<ref name="techcrunch"/>


Der [[Vereinigtes Königreich|britische]] Linux-Distributor Canonical stellte am 27. September 2016 eine kommerziell unterstützte Distribution mit Kubernetes vor.<ref>[https://insights.ubuntu.com/2016/09/27/canonical-expands-enterprise-container-portfolio/ Canonical expands enterprise container portfolio | Ubuntu Insights, 27 September 2016]</ref> Am 14. Dezember 2016 wurde Kubernetes in der Version 1.5 veröffentlicht.<ref>[https://www.linux.com/news/kubernetes-15-supporting-production-workloads Kubernetes 1.5: Supporting Production Workloads | Linux.com | The source for Linux information, December 14, 2016]</ref> StatefulSet (früher PetSet) und PodDisruptionBudget erreichten mit Version 1.5 den Betastatus. Funktionalitäten wie die Unterstützung von Windows Server 2016-Nodes mit Windows Server Containers wurden als Alpha veröffentlicht.<ref>[http://www.pro-linux.de/news/1/24283/kubernetes-15-kommt-besser-mit-zustandsbehafteten-containern-zurecht.html Kubernetes 1.5 kommt besser mit zustandsbehafteten Containern zurecht - Pro-Linux, 15. Dezember 2016]</ref> Am 28. März 2017 wurde Kubernetes in der Version 1.6 veröffentlicht. Ab Version 1.6 unterstützt Kubernetes dank etcd v3 von CoreOS Cluster mit bis zu 5.000 Knoten und etwa 150.000 Pods. Mit ''Federeration'' können mehrere Cluster über einen API-Endpunkt angesprochen werden. Die Cluster können sich auf mehrere Rechenzentren verteilen. Die rollenbasierte Zugriffskontrolle (RBAC) und das Kommandozeilenwerkzeug kubefed wurden als Beta veröffentlicht. StorageClass und die dynamische Volume-Provisionierung sind mit Version 1.6 als stabil gekennzeichnet. Die Version 1.6 installiert standardmäßig StorageClass-Objekte für AWS, Azure, GCP, OpenStack und VMware vSphere. Weiterhin werden ScaleIO (Plugin), Portworx (Plugin) und NFSv3, NFSv4 sowie GlusterFS (mit den COS Node Image) unterstützt.<ref name="prolinux16"/> In Kubernetes Version 1.7 vom 29. Juni 2017 sind unter anderem erweiterte Security-Features und Stateful Workloads hinzugekommen. Gespeicherte Daten können nun verschlüsselt werden (Data at Rest), die Implementierung hat allerdings noch Alpha-Status.<ref>[http://blog.kubernetes.io/2017/06/kubernetes-1.7-security-hardening-stateful-application-extensibility-updates.html Kubernetes: Kubernetes 1.7: Security Hardening, Stateful Application Updates and Extensibility, June 29, 2017]</ref><ref>[https://www.heise.de/developer/meldung/Container-Kubernetes-1-7-bringt-einige-Security-Erweiterungen-3760203.html Container: Kubernetes 1.7 bringt einige Security-Erweiterungen | heise Developer, 30.06.2017]</ref>
Der britische Linux-Distributor Canonical stellte am 27. September 2016 eine kommerziell unterstützte Distribution mit Kubernetes vor.<ref>[https://insights.ubuntu.com/2016/09/27/canonical-expands-enterprise-container-portfolio/ Canonical expands enterprise container portfolio | Ubuntu Insights, 27 September 2016]</ref> Am 14. Dezember 2016 wurde Kubernetes in der Version 1.5 veröffentlicht.<ref>[https://www.linux.com/news/kubernetes-15-supporting-production-workloads Kubernetes 1.5: Supporting Production Workloads | Linux.com | The source for Linux information, December 14, 2016]</ref> StatefulSet (früher PetSet) und PodDisruptionBudget erreichten mit Version 1.5 den Betastatus. Funktionalitäten wie die Unterstützung von [[Microsoft Windows|Windows]] Server 2016-Nodes mit Windows Server Containers wurden als Alpha veröffentlicht.<ref>[http://www.pro-linux.de/news/1/24283/kubernetes-15-kommt-besser-mit-zustandsbehafteten-containern-zurecht.html Kubernetes 1.5 kommt besser mit zustandsbehafteten Containern zurecht - Pro-Linux, 15. Dezember 2016]</ref> Am 28. März 2017 wurde Kubernetes in der Version 1.6 veröffentlicht. Ab Version 1.6 unterstützt Kubernetes dank etcd v3 von CoreOS Cluster mit bis zu 5.000 Knoten und etwa 150.000 Pods. Mit ''Federeration'' können mehrere Cluster über einen API-Endpunkt angesprochen werden. Die Cluster können sich auf mehrere Rechenzentren verteilen. Die rollenbasierte Zugriffskontrolle (RBAC) und das Kommandozeilenwerkzeug kubefed wurden als Beta veröffentlicht. StorageClass und die dynamische Volume-Provisionierung sind mit Version 1.6 als stabil gekennzeichnet. Die Version 1.6 installiert standardmäßig StorageClass-Objekte für AWS, Azure, GCP, OpenStack und VMware vSphere. Weiterhin werden ScaleIO (Plugin), Portworx (Plugin) und NFSv3, NFSv4 sowie GlusterFS (mit den COS Node Image) unterstützt.<ref name="prolinux16"/> In Kubernetes Version 1.7 vom 29. Juni 2017 sind unter anderem erweiterte Security-Features und Stateful Workloads hinzugekommen. Gespeicherte Daten können nun verschlüsselt werden (Data at Rest), die Implementierung hat allerdings noch Alpha-Status.<ref>[http://blog.kubernetes.io/2017/06/kubernetes-1.7-security-hardening-stateful-application-extensibility-updates.html Kubernetes: Kubernetes 1.7: Security Hardening, Stateful Application Updates and Extensibility, June 29, 2017]</ref><ref>[https://www.heise.de/developer/meldung/Container-Kubernetes-1-7-bringt-einige-Security-Erweiterungen-3760203.html Container: Kubernetes 1.7 bringt einige Security-Erweiterungen | heise Developer, 30.06.2017]</ref> Im Oktober 2017 wurde auf der DockerCon EU 2017 in [[Kopenhagen]] bekannt gegeben, dass die Containerplattform Docker in Zukunft die Orchestrierungsplattform Kubernetes unterstützen wird. Die eigene Orchestrierungsvariante Docker Swarm wird damit nicht von Docker aufgegeben. Beide Orchestrierungswerkzeuge sollen zusammenarbeiten können.<ref>[https://www.heise.de/developer/meldung/Container-Docker-unterstuetzt-Kubernetes-3863625.html Container: Docker unterstützt Kubernetes | heise Developer, 17.10.2017]</ref> Ebenfalls im Oktober 2017 veröffentlichte Red Hat mit ''CRI-O'' (CRI = Container Runtime Interface) eine "schlanke" Laufzeitumgebung für Kubernetes.<ref name="heise3956058">[https://www.heise.de/developer/meldung/Containerisierung-Red-Hat-kauft-CoreOS-3956058.html Containerisierung: Red Hat kauft CoreOS | heise Developer, 31.01.2018]</ref>
 
Anfang 2018 veröffentlichte die 2005 gegründete Puppet Labs, Inc. für deren Administrationsprogramm Puppet zwei neue Module, die es ermöglichen, Kubernetes-Cluster einfacher und schneller aufzusetzen. Die Module laufen ab Puppet 4.2.1 und ab Puppet Enterprise 2015.2.<ref>[https://puppet.com/blog/new-supported-puppet-modules-make-kubernetes-deployments-easier New supported Puppet modules make Kubernetes deployments easier | Puppet, 11 January 2018]</ref><ref>[https://www.heise.de/ix/meldung/Kubernetes-Puppet-beschleunigt-Cluster-Einrichtung-3940713.html Kubernetes: Puppet beschleunigt Cluster-Einrichtung | iX, 14.01.2018]</ref> Bereits Ende 2015 veröffentlichte Puppet ein Modul zur Verwaltung von Kubernetes.<ref>[https://puppet.com/blog/managing-kubernetes-configuration-puppet Managing Kubernetes Configuration with Puppet | Puppet, 16 December 2015]</ref> Anfang 2018 übernahm Red Hat den Container-Spezialisten CoreOS für einen Preis von 250 Millionen US-Dollar.<ref name="heise3956058"/> Am 24. Mai 2018 wurde Containerd 1.1 veröffentlicht. Anwender und Entwickler dürfen Containerd 1.1 damit offiziell als Container Runtime in Kubernetes Clustern einsetzen. Damit vereinfacht sich der zugrundeliegende Architektur-Stack gegenüber der ursprünglichen Dockershim-Implementierung nochmals. Das nächste Release der Docker CE wird Containerd 1.1 samt standardmäßig aktiviertem CRI-Plugin enthalten. Containerd 1.1 benötigt mindestens Kubernetes 1.10 und unterstützt sämtliche Kubernetes-Funktionen.<ref>[https://www.heise.de/developer/meldung/Kubernetes-Containerd-Integration-erreicht-Produktionsreife-4058779.html Kubernetes Containerd Integration erreicht Produktionsreife | heise Developer, 25.05.2018]</ref><ref>[https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/ Kubernetes Containerd Integration Goes GA - Kubernetes, May 24, 2018]</ref> Google bietete mit Kubernetes Engine eine gemanagte Kubernetes-Variante in der Google Cloud an. Am 21. Mai 2018 wurde Version 1.10 der Google Kubernetes Engine veröffentlicht.<ref>[https://cloudplatform.googleblog.com/2018/05/Google-Kubernetes-Engine-1-10-is-generally-available-and-ready-for-the-enterprise.html Google Cloud Platform Blog: Google Kubernetes Engine 1.10 is generally available and ready for the enterprise, May 21, 2018]</ref><ref>[https://www.heise.de/developer/meldung/Google-Kubernetes-Engine-1-10-Mehr-Optionen-fuer-Enterprise-Kunden-4052993.html Google Kubernetes Engine 1.10: Mehr Optionen für Enterprise-Kunden | heise Developer, 22.05.2018]</ref> Am 19. Juni 2018 kam die Verfügbarkeit von GPUs in Googles Kubernetes-Engine-Plattform hinzu.<ref>[https://www.heise.de/developer/meldung/GPUs-as-a-Service-fuer-Kubernetes-Engine-allgemein-verfuegbar-4087468.html "GPUs as a Service" für Kubernetes Engine allgemein verfügbar | heise Developer, 20.06.2018]</ref><ref>[https://cloudplatform.googleblog.com/2018/06/GPUs-as-a-service-with-Kubernetes-Engine-are-now-generally-available.html Google Cloud Platform Blog: GPUs as a service with Kubernetes Engine are now generally available, June 19, 2018]</ref> Mit Kubernetes 1.11 vom 27. Juni 2018 sind das auf IP Virtual Server (IPVS) basierende In-Cluster Load Balancing und das CoreDNS-Plug-in als stabil freigegeben worden. Die dynamische Kubelet-Konfiguration liegt mit 11.1 in einer Betavariante vor und das Container Storage Interface (CSI) wurde verbessert.<ref>[https://www.heise.de/developer/meldung/Kubernetes-1-11-In-Cluster-Load-Balancing-und-CoreDNS-sind-stabil-4093616.html Kubernetes 1.11: In-Cluster Load Balancing und CoreDNS sind stabil | heise Developer, 28.06.2018]</ref><ref>[https://kubernetes.io/blog/2018/06/27/kubernetes-1.11-release-announcement/ Kubernetes 1.11: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability - Kubernetes, June 27, 2018]</ref> Am 29. August 2018 wurde von CNCF auf der Open Source Summit für [[Nordamerika]] bekannt gegeben, dass Google Cloud den Besitz und das Management der Kubernetes Cloudressourcen an die CNCF übergibt. Google unterstützt die Übergabe mit Google Cloud Platform Credits im Wert von 9 Millionen US-Dollar über drei Jahre. Nach einer Umfrage wurde Kubernetes zum damaligen Zeitpunkt von mehr als der Hälfte der ''Fortune 100''-Unternehmen eingesetzt.<ref>[https://www.pro-linux.de/news/1/26249/google-%C3%BCbergibt-kubernetes-infrastruktur-an-cloud-native.html Google übergibt Kubernetes-Infrastruktur an Cloud Native - Pro-Linux, 30. August 2018]</ref><ref>[https://www.cncf.io/announcement/2018/08/29/cncf-receives-9-million-cloud-credit-grant-from-google/ Cloud Native Computing Foundation Receives $9 Million Cloud Credit Grant from Google Cloud to Fund Kubernetes Development, Empower Community - Cloud Native Computing Foundation, August 29, 2018]</ref> Am 28. September 2018 wurde Kubernetes 1.12 veröffentlicht.<ref>[https://github.com/kubernetes/kubernetes/releases/tag/v1.12.0 Release v1.12.0 · kubernetes/kubernetes · GitHub]</ref> Diese Version unterstützt Azure Virtual Machine Scale Sets (VMSS) zum Erstellen und Verwalten homogener VM-Pools. Kubelet TLS Bootstrap ist nun generell verfügbar. Damit sind Kubelets in der Lage, sich selbst in einen TLS-gesicherten Cluster zu laden.<ref>[https://www.heise.de/developer/meldung/Kubelet-TLS-Bootstrap-mit-Kubernetes-1-12-verfuegbar-4180038.html Kubelet TLS Bootstrap mit Kubernetes 1.12 verfügbar | heise Developer, 02.10.2018]</ref>
 
Am 22. Januar 2019 gab das openSUSE Kubic Team bekannt, dass am Tag zuvor Kubic von der CNCF als Kubernetes-Distribution zertifiziert wurde.<ref>[https://news.opensuse.org/2019/01/24/kubic-is-now-a-certified-kubernetes-distribution/ openSUSE News - Kubic is now a certified Kubernetes distribution January 24th, 2019]</ref> Kubic beruht auf einem Kernsystem namens MicroOS und ist die erste Kubernetes-Distribution, die Podman mit der Container-Laufzeitumgebung ''CRI-O'' anstelle von Docker verwendet.<ref>[https://www.pro-linux.de/news/1/26706/opensuse-kubic-erh%C3%A4lt-kubernetes-zertifikation.html Opensuse Kubic erhält Kubernetes-Zertifikation - Pro-Linux, 25. Januar 2019]</ref> Mit Kubernetes 1.14 vom 25. März 2019 ist die Unterstützung für Windows Nodes für den Produktionsbetrieb freigegeben. Damit unterstützt Kubernetes nun Linux-Container als auch Windows-Container, sodass Unternehmen die Applikationen beider Systeme nutzen nicht mehr unterschiedliche Container-Orchestrierungen einsetzen müssen. Kubernetes 1.14 unterstützt Windows Server 2019 für Worker Nodes sowie Container und bietet außerdem ein Out-of-Tree Networking mit Azure-CNI, OVN-Kubernetes und Flannel. Die Unterstützung für Persistent Local Volumes ist mit Version 1.14 ebenfalls stabil. Damit lassen sich lokal verankerte Speicher als persistente Volume-Source verwenden.<ref>[https://www.heise.de/developer/meldung/Kubernetes-1-14-Jetzt-auch-fuer-Windows-Container-4348855.html Kubernetes 1.14: Jetzt auch für Windows-Container | heise online, 26.03.2019]</ref> Am 24. April 2019 kündige das 2014 gegründete Unternehmen Rancher Labs mit k3OS eine Mischung aus Kubernetes- und Linux-Distribution an. Dazu wird die kurz zuvor veröffentlichte Kubernetes-Distribution k3s mit den Werkzeugen und dem Packaging von Alpine sowie einem Ubuntu-Kernel kombiniert.<ref>[https://www.pro-linux.de/news/1/27006/rancher-labs-k%C3%BCndigt-kubernetes-distribution-k3os-an.html Rancher Labs kündigt Kubernetes-Distribution k3OS an - Pro-Linux, 26. April 2019]</ref><ref>[https://rancher.com/blog/2019/announcing-k3os-kubernetes-operating-system/ Announcing k3OS: A Kubernetes Operating System, April 24, 2019]</ref> Am 6. Mai 2019 kündigte Microsoft das von Red Hat unterstützte Open-Source-Projekt KEDA ('''K'''ubernetes-based '''e'''vent-'''d'''riven '''a'''utoscaling) an. Mit KEDA automatisiert Microsoft die Container-Skalierung in Kubernetes-Clustern. Anstelle der reaktiven Skalierung von Kubernetes eröffnet KEDA eine an den eingehenden Events ausgerichtete frühzeitigere Anpassung der Containerinstanzen im Kubernetes-Cluster. Neue Deployments erkennt KEDA automatisch und startet das Monitoring der verschiedenen Ereignisquellen. KEDA unterstützt Kafka, Azure Queues, Azure Service Bus, RabbitMQ, HTTP und Azure Event Grid/Cloud Events. Die Unterstützung weiterer Lösungen ist geplant.<ref>[https://www.heise.de/developer/meldung/Microsoft-verspricht-event-getriebenes-Autoscaling-fuer-Kubernetes-4416133.html Microsoft verspricht event-getriebenes Autoscaling für Kubernetes | heise online, 07.05.2019]</ref><ref>[https://cloudblogs.microsoft.com/opensource/2019/05/06/announcing-keda-kubernetes-event-driven-autoscaling-containers/ Announcing KEDA: bringing event-driven containers and functions to Kubernetes - Open Source blog, May 6, 2019]</ref> In Version 1.15 vom 19. Juni 2019 sind neue Kubectl-Kommandos als eine von mehreren vorbereitenden Maßnahmen rund um die geplante generelle Verfügbarkeit von Custom Resource Definitions (CRDs) und Admission Webhooks hinzugekommenen. Das auf OpenAPI basierende Validierungsschema in CRDs soll auf das Konzept des Structural Schema überführt werden. In kubeadm steht nun unter anderem High Availability (HA) als Beta-Funktion zur Verfügung.<ref>[https://www.heise.de/developer/meldung/Kubernetes-1-15-bietet-mehr-Erweiterbarkeit-ueber-Custom-Resource-Definitions-4452020.html Kubernetes 1.15 bietet mehr Erweiterbarkeit über Custom Resource Definitions | heise online, 20.06.2019]</ref>
 
Im August 2019 stellt VMware auf der VMworld in San Francisco einen Umbau von vSphere auf Kubernetes mittels Project Pacific vor. Die Integration von Kubernetes als Kern von vSphere soll auf der API- und UI-Ebene sowie der zentralen Virtualisierungsebene ESXi erfolgen. Mit Tanzo Mission Control sollen sich alle Kubernetes-Cluster einheitlich über vSphere, VMware PKS (Pivotal Kubernetes Service), Public-Clouds, Managed-Services und Packaged Distributions hinweg transparent managen lassen.<ref>[https://www.heise.de/developer/meldung/VMware-setzt-mit-dem-Project-Pacific-voll-auf-Kubernetes-4505999.html Containerisierung: VMware setzt mit dem Project Pacific voll auf Kubernetes | heise online, 27. August 2019]</ref> In Kubernetes Version 1.16 vom 18. September 2019 stehen CRDs nun generell zur Verfügung und bilden die neue Basis für Extensions im Kubernetes-Ökosystem. Der Umbauprozess für Third Party Resources gilt mit 1.16 als abgeschlossen. Der Active Directory Group Managed Service Account (GMSA) ist nun in der Beta-Phase. Dieser ermöglicht GMSA Windows-Containern authentifizierten Zugriff auf externe Ressourcen, bietet eine automatische Passwortverwaltung, eine vereinfachte Verwaltung von Service Principal Name (SPN) und erlaubt die Delegation der Verwaltung an andere Administratoren. Im Alpha-Status sind unter anderem Endpoint Slices als Alternative zu den Endpoint-Ressourcen hinzu gekommen.<ref>[https://www.heise.de/developer/meldung/Kubernetes-1-16-startet-mit-mehr-als-30-Verbesserungen-4533705.html Kubernetes 1.16 startet mit mehr als 30 Verbesserungen | heise online, 19.09.2019]</ref> Am 2. März 2020 wurde das Toolkit Kubeflow 1.0 veröffentlicht. Das Open-Source-Projekt ermöglicht es, Machine-Learning-Workflows auf Kubernetes auszurollen. Kubeflow wird u. a. von Mitarbeitern von Google, Microsoft, IBM und Cisco entwickelt.<ref>[https://www.heise.de/developer/meldung/Kubeflow-Die-Machine-Learning-Werkzeugkiste-fuer-Kubernetes-erreicht-Version-1-0-4673649.html Kubeflow: Die Machine-Learning-Werkzeugkiste für Kubernetes erreicht Version 1.0 | heise online, 03.03.2020]</ref> Im März 2020 veröffentlichte der Plattformanbieter Cloud Foundry die Distribution KubeCF. Die Distribution der Cloud Foundry Application Runtime läuft auf Kubernetes und verknüpft Cloud Foundry mit Kubernetes.<ref>[https://www.heise.de/developer/meldung/CloudFoundry-packt-mit-KubeCF-das-eigene-Angebot-auf-Kubernetes-4687993.html CloudFoundry packt mit KubeCF das eigene Angebot auf Kubernetes | heise online]</ref> In Kubernetes 1.18 vom 25. März 2020 sind 38 Verbesserungen eingeflossen, 15 davon sind in einem stabilen Status übergegangen. Kubernetes unterstützt nun das CSI-Proxy für Windows in einer Alpha-Version. Das CSI-Proxy unterstützt Container dabei, Storage-Aufgaben auf Windows durchzuführen, auch wenn sie dafür eigentlich nicht privilegiert sind. Mit dem ebenfalls neuen Topology-Manager können Kubernetes-Anwender eine NUMA-Anordnung (Non-uniform memory access) ihrer CPUs und Geräte gewährleisten. So lassen sich auch Workloads durchführen, die für Entwicklungsumgebungen mit geringer Latenz ausgelegt sind.<ref>[https://www.heise.de/developer/meldung/Container-Orchestrierung-Kubernetes-1-18-bietet-Beta-Bestandteile-4690862.html Container-Orchestrierung: Kubernetes 1.18 bietet Beta-Bestandteile | heise online]</ref><ref>[https://kubernetes.io/blog/2020/03/25/kubernetes-1-18-release-announcement/ Kubernetes 1.18: Fit & Finish - Kubernetes, March 25, 2020]</ref> Am 31. März 2020 stellte Google das Management-Framework kpt als Open Source unter die Apache Software License 2.0. Das seit 2014 entwickelte Tool dient zum Paketieren von Kubernetes-Manifestdateien.<ref>[https://www.heise.de/developer/meldung/Verpackungskuenstler-Kubernetes-paketieren-mit-kpt-4695309.html Verpackungskünstler: Kubernetes paketieren mit kpt | heise online, 02.04.2020]</ref>
 
Mit Kubernetes 1.19 vom 26. August 2020 ist der Kubernetes Ingress Controller dem Beta-Stadium entwachsen. Ebenfalls als stabil gilt nun die Funktion, Übergänge von einer Beta- zu einer stabilen Version automatisch verfolgen und darauf reagieren zu können, die automatische Rotierung von Zertifikat/Schlüsselpaar bei Ablauf des Zertifikats und der NodeRestriction-Admission-Controller. Die Sicherheitseinrichtung im Linux-Kernel seccomp (Security Computing Mode) hat mit dieser Version auch GA-Status (General Availability). Das Zeitfenster für den Long-Term Support wurde von neun Monaten auf ein Jahr verlängert.<ref>[https://www.heise.de/news/Container-Kubernetes-1-19-bietet-mehr-Vorhersehbarkeit-und-Stabilitaet-4878510.html Container: Kubernetes 1.19 bietet mehr Vorhersehbarkeit und Stabilität | heise online, 27.08.2020]</ref> Mit dem von Red Hat entwickelten OpenShift 4.6 vom 27. Oktober 2020 und dem Windows Machine Config Operator (WMCO) lassen sich Linux- und Windows-Anwendungen containerisieren. Windows-Anwendungen müssen nicht mehr in VMs laufen.<ref>[https://www.heise.de/news/Red-Hat-oeffnet-OpenShift-fuer-Windows-Workloads-4992545.html Red Hat öffnet Kuberntes für Windows-Containter | heise online, 18.12.2020]</ref> Mit Kubernetes 1.20 vom 8. Dezember 2020 wurde die Unterstützung von Docker offiziell beendet. Für Kubernetes ist die bereits seit 2018 existierende alternative High-Level-Runtime Containerd wichtiger. Somit funktioniert Docker nicht mehr als Laufzeitumgebung in Kubernetes. Größere Projekte wie Red Hat und Suse verzichten bereits seit geraumer Zeit auf Docker und setzen auf Alternativen wie CRI-O.<ref>[https://www.heise.de/news/Container-Kubernetes-beendet-den-Support-fuer-Docker-4978841.html Container: Kubernetes beendet den Support für Docker | heise online, 03.12.2020]</ref> In Kubernetes 1.21 vom 8. April gab es 51 Neuerungen, davon sind 13 nun als stabil eingestuft, wie z. B. die CronJobs-API, Immutable Secrets und ConfigMaps. Einzelne Secrets und ConfigMaps lassen sich abweichend vom Standard nun als unveränderlich (immutable) markieren. Da solche markierten Secrets nicht weiter überwacht werden, verbessert das die Performance von Clustern. Das Kubernetes-Team wechselte mit dieser Version auf einen neuen Modus, bei dem die Community neue Features und Bugs zur Veröffentlichung freigibt.<ref>[https://www.heise.de/news/Containerisierung-Kubernetes-1-21-mit-stabilen-CronJobs-erschienen-6009732.html Containerisierung: Kubernetes 1.21 mit stabilen CronJobs erschienen | heise online, 09.04.2021]</ref>
 
Im April 2021 wechselte Kubernetes auf einen neuen Veröffentlichungszyklus. Statt einer neuen Version pro Quartal sind nun drei Versionen pro Jahr geplant. Die erste Version im neuen Zyklus ist Kubernetes 1.22 vom 4. August 2021. Darin gab es 53 Neuerungen, dabei sind 13 Features wie Server-side Apply in den stabilen Status übergegangen.<ref>[https://www.heise.de/news/Container-Kubernetes-1-22-erweitert-die-Windows-Anbindung-6156211.html Container: Kubernetes 1.22 erweitert die Windows-Anbindung | heise online, 05.08.2021]</ref> In Kubernetes 1.23 vom 7. Dezember 2021 sind elf Funktionen wie der Dual-Stack-Betrieb im Cluster, der horizontalen Pod-Autoscaler und generische Ephemeral Volumes stabilisiert worden. 19 neuen Funktionen wie die serverseitige Validierung von Feldern, die Anbindung an OpenAPI v3 und das Validieren von CRDs mit der Common Expression Language (CEL) kamen hinzu. 17 Funktionen wechselten aus der Alpha- in die Betaphase. Der FlexVolume-Treiber wurde auf den Status veraltet gesetzt uns sollte durch CSI ersetzt werden.<ref>[https://www.heise.de/news/Containerisierung-Kubernetes-1-23-stabilisiert-Betrieb-mit-zwei-Netzwerk-Stacks-6288953.html Containerisierung: Kubernetes 1.23 stabilisiert Betrieb mit zwei Netzwerk-Stacks | heise online, 08.12.2021]</ref> In Kubernetes 1.24 (''Stargazer'') vom 3. Mai 2022 wurde wie geplant die Docker Engine und der zur Kompatibilität mit dem CRI notwendigen Dockershim entfernt. Wer auf die Docker Engine angewiesen ist, kann die von Mirantis und Docker entwickelten cri-dockerd ein Ersatz für die Dockershim einsetzen. Die Anbindung an OpenAPI v3, gRPC Probes und der Kubelet Credential Provider sind in Kubernetes 1.24 in den Betastatus gegangen. Neue APIs im Betastatus werden seit dieser Version nicht mehr automatisch aktiviert.<ref name="heise7074353"/> Am 5. Juni 2022 gab die Apache Software Foundation (ASF) die Version 1.0.0 des Apache Flink Kubernetes Operator frei. Damit können Entwickler Flink-Cluster auf Kubernetes verwalten.<ref>[https://www.heise.de/news/Apache-Flink-Kubernetes-Operator-erreicht-mit-Version-1-0-0-Produktionsreife-7134661.html Apache Flink Kubernetes Operator erreicht mit Version 1.0.0 Produktionsreife | heise online, 08.06.2022]</ref><ref>[https://flink.apache.org/news/2022/06/05/release-kubernetes-operator-1.0.0.html Apache Flink: Apache Flink Kubernetes Operator 1.0.0 Release Announcement, 05 Jun 2022]</ref> Am 23. August 2022 erschien Kubernetes 1.25 (''Combiner''). Darin wurden 40 Erweiterungen eingearbeitet, dreizehn davon wie der Pod Security Admission Controller und Ephemeral Container gelten nun offiziell als stabil. cgroups v2 wird nun vollständig unterstützt.<ref>[https://www.heise.de/news/Kubernetes-1-25-kurzlebige-Container-als-staendiges-Hilfsmittel-7241800.html Kubernetes 1.25: kurzlebige Container als ständiges Hilfsmittel | heise online, 24.08.2022]</ref> In Kubernetes 1.26 (Codename ''Electrifying'') vom 9. Dezember 2022 hat das CRI die stabile Version 1.0 erreicht. Da Kubelet keine Nodes mehr registriert, wenn die Container-Runtime nicht vollständig kompatibel zu CRI v1 ist, wird containerd bis Version 1.5 nicht mehr unterstützt. Die Container Image Registry ''registry.k8s.io'' ist nun Standard, sie ermöglicht schnellere Downloads und die Verteilung von Lasten über mehrere Cloud-Anbieter und Regionen hinweg. Mit Kubernetes 1.26 wird der cosign-Signierprozess auf alle Client-, Server- und Quellcode-Tarballs, Binary-Artefakte, Software Bills of Material (SBOMs) sowie den Build-Ursprung ausgeweitet. Das erhöht die Sicherheit. Offizielle Container Images werden bereits seit Kubernetes 1.24 signiert.<ref>[https://www.heise.de/news/Kubernetes-1-26-vollendet-den-Wechsel-auf-das-Container-Runtime-Interface-7392000.html Kubernetes 1.26 vollendet den Wechsel auf das Container Runtime Interface | heise online, 12.12.2022]</ref>
 
Am 11. April 2023 erschien Kubernetes 1.27 (''Chill Vibes''). Mit dieser Version gilt die alte Container Image Registry ''k8s.gcr.io'' nun als eingefroren. 60 Funktionen wurden in dieser Version mit Neuerungen versehen, davon wurden 13 stabilisiert, 29 in den Beta-Status erhoben und 18 Alpha-Features eingeführt. Zu den Alpha-Features zählt Node-Log-Zugriff mithilfe der Kubernetes-API.<ref>[https://www.heise.de/news/Kubernetes-1-27-wechselt-vollstaendig-zur-neuen-Container-Image-Registry-8948099.html Kubernetes 1.27 wechselt vollständig zur neuen Container Image Registry | heise online, 12.04.2023]</ref><ref>[https://kubernetes.io/blog/2023/04/11/kubernetes-v1-27-release/ Kubernetes v1.27: Chill Vibes | Kubernetes, April 11, 2023]</ref> In Kubernetes 1.28 Planternetes vom 15. August 2023 wurden zwölf bestehende Features stabilisiert und 14 Features in den Beta- sowie 19 Features in den Alpha-Status überführt. Als stabil gilt nun das Aufräumen nach dem unerwarteten Beenden eines Node und das Neustarten von Stateful Workloads auf einem anderen Node. Auch dann, wenn sich ein Node in einem nicht-wiederherstellbaren Zustand befindet. Ebenfalls stabil ist in dieser Version die automatische, rückwirkende Zuweisung einer standardmäßigen ''StorageClass''. Mit einer StorageClass kann man die "Klassen" von Speicher beschreiben, die sie anbieten. Das ist etwa im Hinblick auf Quality-of-Service-Levels oder Backup-Richtlinien sinnvoll.<ref>[https://www.heise.de/news/Kubernetes-1-28-stabilisiert-den-Umgang-mit-unerwarteten-Node-Shutdowns-9245579.html Container-Orchestrierung Kubernetes 1.28 stabilisiert Umgang mit Node-Shutdowns | heise online, 16.08.2023]</ref> In Kubernetes 1.29 Mandala (The Universe) vom 13. Dezember 2023 wurden elf neue stabile, 19 Beta- und 19 Alpha-Features veröffentlicht. KMS v1 ist nun standardmäßig deaktiviert, alle Kubernetes-Ressourcen sollten nur noch mit KMS v2 verschlüsselt werden. Mit ReadWriteOncePod steht nun ein vierter Speicherzugriffsmodus zur Verfügung.<ref>[https://www.heise.de/news/Kubernetes-1-29-Mandala-erschienen-9574648.html Kubernetes 1.29 Mandala erschienen | heise online, 14.12.2023]</ref>
 
 
== Versionen (Auswahl) ==
{| class="wikitable"
|- class="hintergrundfarbe5"
! Version || Datum
|-
| 1.8 || 29. September 2017
|-
| 1.9 || 16. Dezember 2017
|-
| 1.10 || 27. März 2018
|-
| 1.11 || 27. Juni 2018
|-
| 1.12 || 28. September 2018
|-
| 1.13 || 3. Dezember 2018
|-
| 1.14 || 25. März 2019
|-
| 1.15 || 19. Juni 2019
|-
| 1.16 || 18. September 2019
|-
| 1.17 || 9. Dezember 2019
|-
| 1.18 || 25. März 2020
|-
| 1.19 || 26. August 2020
|-
| 1.20 || 8. Dezember 2020
|-
| 1.21 || 8. April 2021
|-
| 1.22 || 4. August 2021
|-
| 1.23 || 7. Dezember 2021
|-
| 1.24 || 3. Mai 2022
|-
| 1.25 || 23. August 2022
|-
| 1.26 || 9. Dezember 2022
|-
| 1.27 || 11. April 2023
|-
| 1.28 || 15. August 2023
|-
| 1.29 || 13. Dezember 2023
|}


== Weblinks ==
== Weblinks ==
*https://kubernetes.io/
*https://kubernetes.io/
*{{Twitter|kubernetesio}}
*{{Twitter|kubernetesio}}
*[https://www.heise.de/developer/artikel/Die-Grundbegriffe-von-Kubernetes-4991030.html Die Grundbegriffe von Kubernetes | heise Developer]
*[https://www.heise.de/thema/Kubernetes Kubernetes: News, Ratgeber und Tipps | heise online]
*[https://www.youtube.com/watch?v=4ht22ReBjno YouTube - The Illustrated Children's Guide to Kubernetes]
*[https://www.youtube.com/watch?v=4ht22ReBjno YouTube - The Illustrated Children's Guide to Kubernetes]
*{{EN-WP|Kubernetes}}


== Quellen ==
== Quellen ==
<references/>
<references/>
{{Normdaten|TYP=s|GND=1153019000|LCCN=|NDL=|VIAF=|Wikidata=Q22661306}}


[[Kategorie:Cloud Computing]]
[[Kategorie:Cloud Computing]]

Aktuelle Version vom 2. Januar 2024, 07:58 Uhr

Kubernetes
Logo
Maintainer Cloud Native Computing Foundation
Entwickler Google
Erscheinungsjahr 2014
Aktuelle Version 1.29[1]
(13. Dezember 2023)
Programmiersprache Go
Kategorie Container-Orchestrierung
Lizenz Apache License 2.0
Deutsch nein
Website kubernetes.io
Architekturdiagramm von Kubernetes

Kubernetes (kurz K8s) ist ein Open-Source-System um Container wie Docker (bis Kubernetes Version 1.20) oder CoreOS (rkt) automatisch zu verteilen, zu skalieren und zu verwalten. Das System wurde ursprünglich von Google entwickelt und wird von der Cloud Native Computing Foundation (CNCF) der Linux Foundation verwaltet. Weitere Partner sind unter anderem AT&T, Box, Cisco, Cloud Foundry Foundation, CoreOS, Cycle Computing, Docker, eBay, Goldman Sachs, Huawei, IBM, Intel, Joyent, Kismatic, Mesosphere, Red Hat, Switch SUPERNAP, Twitter, Univa, VMware und Weaveworks.[2]

Der Quellcode von Kubernetes steht auf GitHub zur Verfügung.[3] Kubernetes ist größtenteils in Googles Programmiersprache Go implementiert und steht unter der Apache License 2.0.[4] Der Name Kubernetes stammt aus dem Griechischen und bedeutet etwa Steuermann oder Pilot.[5] Mit Plattformen wie den Open-Source-Plattformen OpenFaaS, Fission, OpenWhisk und Kubeless lassen sich FaaS-Anwendung (Function as a Service) mit Kubernetes kombinieren.[6] In die Linux-Distribution Ubuntu integriert das britische Unternehmen Canonical die Container-Lösungen MicroK8s und Charmed Kubernetes. MicroK8s ist für Edge-Umgebungen und IoT-Anwendungen gedacht, Charmed Kubernetes hingegen für Multi-Cloud- und Hybrid-Cloud-Produktionsumgebungen.[7]

Geschichte

Kubernetes wurde von Google im Jahr 2014 als Project Seven[8] gestartet und basiert auf Googles 15-jähriger Erfahrung mit ihrer Lösung namens Borg.[5] Eric Brewer von Google stellte Kubernetes im Juni 2014 auf einer Konferenz in San Francisco vor.[9] Am 6. April 2015 kündigte CoreOS Inc. Tectonic an.[10] CoreOS Inc. stellte mit Tectonic ein Werkzeug zur Verwaltung von Container-Flotten vor. Kubernetes übernimmt dabei die Orchestrierung. Google stellte über seine eigene Risikokapital-Gesellschaft Google Ventures für Tectonic 12 Millionen US-Dollar bereit, weitere acht Millionen steuerten andere Investoren bei.[11] Am 21. Juli 2015 wurde Kubernetes 1.0 veröffentlicht.[2]

Der britische Linux-Distributor Canonical stellte am 27. September 2016 eine kommerziell unterstützte Distribution mit Kubernetes vor.[12] Am 14. Dezember 2016 wurde Kubernetes in der Version 1.5 veröffentlicht.[13] StatefulSet (früher PetSet) und PodDisruptionBudget erreichten mit Version 1.5 den Betastatus. Funktionalitäten wie die Unterstützung von Windows Server 2016-Nodes mit Windows Server Containers wurden als Alpha veröffentlicht.[14] Am 28. März 2017 wurde Kubernetes in der Version 1.6 veröffentlicht. Ab Version 1.6 unterstützt Kubernetes dank etcd v3 von CoreOS Cluster mit bis zu 5.000 Knoten und etwa 150.000 Pods. Mit Federeration können mehrere Cluster über einen API-Endpunkt angesprochen werden. Die Cluster können sich auf mehrere Rechenzentren verteilen. Die rollenbasierte Zugriffskontrolle (RBAC) und das Kommandozeilenwerkzeug kubefed wurden als Beta veröffentlicht. StorageClass und die dynamische Volume-Provisionierung sind mit Version 1.6 als stabil gekennzeichnet. Die Version 1.6 installiert standardmäßig StorageClass-Objekte für AWS, Azure, GCP, OpenStack und VMware vSphere. Weiterhin werden ScaleIO (Plugin), Portworx (Plugin) und NFSv3, NFSv4 sowie GlusterFS (mit den COS Node Image) unterstützt.[4] In Kubernetes Version 1.7 vom 29. Juni 2017 sind unter anderem erweiterte Security-Features und Stateful Workloads hinzugekommen. Gespeicherte Daten können nun verschlüsselt werden (Data at Rest), die Implementierung hat allerdings noch Alpha-Status.[15][16] Im Oktober 2017 wurde auf der DockerCon EU 2017 in Kopenhagen bekannt gegeben, dass die Containerplattform Docker in Zukunft die Orchestrierungsplattform Kubernetes unterstützen wird. Die eigene Orchestrierungsvariante Docker Swarm wird damit nicht von Docker aufgegeben. Beide Orchestrierungswerkzeuge sollen zusammenarbeiten können.[17] Ebenfalls im Oktober 2017 veröffentlichte Red Hat mit CRI-O (CRI = Container Runtime Interface) eine "schlanke" Laufzeitumgebung für Kubernetes.[18]

Anfang 2018 veröffentlichte die 2005 gegründete Puppet Labs, Inc. für deren Administrationsprogramm Puppet zwei neue Module, die es ermöglichen, Kubernetes-Cluster einfacher und schneller aufzusetzen. Die Module laufen ab Puppet 4.2.1 und ab Puppet Enterprise 2015.2.[19][20] Bereits Ende 2015 veröffentlichte Puppet ein Modul zur Verwaltung von Kubernetes.[21] Anfang 2018 übernahm Red Hat den Container-Spezialisten CoreOS für einen Preis von 250 Millionen US-Dollar.[18] Am 24. Mai 2018 wurde Containerd 1.1 veröffentlicht. Anwender und Entwickler dürfen Containerd 1.1 damit offiziell als Container Runtime in Kubernetes Clustern einsetzen. Damit vereinfacht sich der zugrundeliegende Architektur-Stack gegenüber der ursprünglichen Dockershim-Implementierung nochmals. Das nächste Release der Docker CE wird Containerd 1.1 samt standardmäßig aktiviertem CRI-Plugin enthalten. Containerd 1.1 benötigt mindestens Kubernetes 1.10 und unterstützt sämtliche Kubernetes-Funktionen.[22][23] Google bietete mit Kubernetes Engine eine gemanagte Kubernetes-Variante in der Google Cloud an. Am 21. Mai 2018 wurde Version 1.10 der Google Kubernetes Engine veröffentlicht.[24][25] Am 19. Juni 2018 kam die Verfügbarkeit von GPUs in Googles Kubernetes-Engine-Plattform hinzu.[26][27] Mit Kubernetes 1.11 vom 27. Juni 2018 sind das auf IP Virtual Server (IPVS) basierende In-Cluster Load Balancing und das CoreDNS-Plug-in als stabil freigegeben worden. Die dynamische Kubelet-Konfiguration liegt mit 11.1 in einer Betavariante vor und das Container Storage Interface (CSI) wurde verbessert.[28][29] Am 29. August 2018 wurde von CNCF auf der Open Source Summit für Nordamerika bekannt gegeben, dass Google Cloud den Besitz und das Management der Kubernetes Cloudressourcen an die CNCF übergibt. Google unterstützt die Übergabe mit Google Cloud Platform Credits im Wert von 9 Millionen US-Dollar über drei Jahre. Nach einer Umfrage wurde Kubernetes zum damaligen Zeitpunkt von mehr als der Hälfte der Fortune 100-Unternehmen eingesetzt.[30][31] Am 28. September 2018 wurde Kubernetes 1.12 veröffentlicht.[32] Diese Version unterstützt Azure Virtual Machine Scale Sets (VMSS) zum Erstellen und Verwalten homogener VM-Pools. Kubelet TLS Bootstrap ist nun generell verfügbar. Damit sind Kubelets in der Lage, sich selbst in einen TLS-gesicherten Cluster zu laden.[33]

Am 22. Januar 2019 gab das openSUSE Kubic Team bekannt, dass am Tag zuvor Kubic von der CNCF als Kubernetes-Distribution zertifiziert wurde.[34] Kubic beruht auf einem Kernsystem namens MicroOS und ist die erste Kubernetes-Distribution, die Podman mit der Container-Laufzeitumgebung CRI-O anstelle von Docker verwendet.[35] Mit Kubernetes 1.14 vom 25. März 2019 ist die Unterstützung für Windows Nodes für den Produktionsbetrieb freigegeben. Damit unterstützt Kubernetes nun Linux-Container als auch Windows-Container, sodass Unternehmen die Applikationen beider Systeme nutzen nicht mehr unterschiedliche Container-Orchestrierungen einsetzen müssen. Kubernetes 1.14 unterstützt Windows Server 2019 für Worker Nodes sowie Container und bietet außerdem ein Out-of-Tree Networking mit Azure-CNI, OVN-Kubernetes und Flannel. Die Unterstützung für Persistent Local Volumes ist mit Version 1.14 ebenfalls stabil. Damit lassen sich lokal verankerte Speicher als persistente Volume-Source verwenden.[36] Am 24. April 2019 kündige das 2014 gegründete Unternehmen Rancher Labs mit k3OS eine Mischung aus Kubernetes- und Linux-Distribution an. Dazu wird die kurz zuvor veröffentlichte Kubernetes-Distribution k3s mit den Werkzeugen und dem Packaging von Alpine sowie einem Ubuntu-Kernel kombiniert.[37][38] Am 6. Mai 2019 kündigte Microsoft das von Red Hat unterstützte Open-Source-Projekt KEDA (Kubernetes-based event-driven autoscaling) an. Mit KEDA automatisiert Microsoft die Container-Skalierung in Kubernetes-Clustern. Anstelle der reaktiven Skalierung von Kubernetes eröffnet KEDA eine an den eingehenden Events ausgerichtete frühzeitigere Anpassung der Containerinstanzen im Kubernetes-Cluster. Neue Deployments erkennt KEDA automatisch und startet das Monitoring der verschiedenen Ereignisquellen. KEDA unterstützt Kafka, Azure Queues, Azure Service Bus, RabbitMQ, HTTP und Azure Event Grid/Cloud Events. Die Unterstützung weiterer Lösungen ist geplant.[39][40] In Version 1.15 vom 19. Juni 2019 sind neue Kubectl-Kommandos als eine von mehreren vorbereitenden Maßnahmen rund um die geplante generelle Verfügbarkeit von Custom Resource Definitions (CRDs) und Admission Webhooks hinzugekommenen. Das auf OpenAPI basierende Validierungsschema in CRDs soll auf das Konzept des Structural Schema überführt werden. In kubeadm steht nun unter anderem High Availability (HA) als Beta-Funktion zur Verfügung.[41]

Im August 2019 stellt VMware auf der VMworld in San Francisco einen Umbau von vSphere auf Kubernetes mittels Project Pacific vor. Die Integration von Kubernetes als Kern von vSphere soll auf der API- und UI-Ebene sowie der zentralen Virtualisierungsebene ESXi erfolgen. Mit Tanzo Mission Control sollen sich alle Kubernetes-Cluster einheitlich über vSphere, VMware PKS (Pivotal Kubernetes Service), Public-Clouds, Managed-Services und Packaged Distributions hinweg transparent managen lassen.[42] In Kubernetes Version 1.16 vom 18. September 2019 stehen CRDs nun generell zur Verfügung und bilden die neue Basis für Extensions im Kubernetes-Ökosystem. Der Umbauprozess für Third Party Resources gilt mit 1.16 als abgeschlossen. Der Active Directory Group Managed Service Account (GMSA) ist nun in der Beta-Phase. Dieser ermöglicht GMSA Windows-Containern authentifizierten Zugriff auf externe Ressourcen, bietet eine automatische Passwortverwaltung, eine vereinfachte Verwaltung von Service Principal Name (SPN) und erlaubt die Delegation der Verwaltung an andere Administratoren. Im Alpha-Status sind unter anderem Endpoint Slices als Alternative zu den Endpoint-Ressourcen hinzu gekommen.[43] Am 2. März 2020 wurde das Toolkit Kubeflow 1.0 veröffentlicht. Das Open-Source-Projekt ermöglicht es, Machine-Learning-Workflows auf Kubernetes auszurollen. Kubeflow wird u. a. von Mitarbeitern von Google, Microsoft, IBM und Cisco entwickelt.[44] Im März 2020 veröffentlichte der Plattformanbieter Cloud Foundry die Distribution KubeCF. Die Distribution der Cloud Foundry Application Runtime läuft auf Kubernetes und verknüpft Cloud Foundry mit Kubernetes.[45] In Kubernetes 1.18 vom 25. März 2020 sind 38 Verbesserungen eingeflossen, 15 davon sind in einem stabilen Status übergegangen. Kubernetes unterstützt nun das CSI-Proxy für Windows in einer Alpha-Version. Das CSI-Proxy unterstützt Container dabei, Storage-Aufgaben auf Windows durchzuführen, auch wenn sie dafür eigentlich nicht privilegiert sind. Mit dem ebenfalls neuen Topology-Manager können Kubernetes-Anwender eine NUMA-Anordnung (Non-uniform memory access) ihrer CPUs und Geräte gewährleisten. So lassen sich auch Workloads durchführen, die für Entwicklungsumgebungen mit geringer Latenz ausgelegt sind.[46][47] Am 31. März 2020 stellte Google das Management-Framework kpt als Open Source unter die Apache Software License 2.0. Das seit 2014 entwickelte Tool dient zum Paketieren von Kubernetes-Manifestdateien.[48]

Mit Kubernetes 1.19 vom 26. August 2020 ist der Kubernetes Ingress Controller dem Beta-Stadium entwachsen. Ebenfalls als stabil gilt nun die Funktion, Übergänge von einer Beta- zu einer stabilen Version automatisch verfolgen und darauf reagieren zu können, die automatische Rotierung von Zertifikat/Schlüsselpaar bei Ablauf des Zertifikats und der NodeRestriction-Admission-Controller. Die Sicherheitseinrichtung im Linux-Kernel seccomp (Security Computing Mode) hat mit dieser Version auch GA-Status (General Availability). Das Zeitfenster für den Long-Term Support wurde von neun Monaten auf ein Jahr verlängert.[49] Mit dem von Red Hat entwickelten OpenShift 4.6 vom 27. Oktober 2020 und dem Windows Machine Config Operator (WMCO) lassen sich Linux- und Windows-Anwendungen containerisieren. Windows-Anwendungen müssen nicht mehr in VMs laufen.[50] Mit Kubernetes 1.20 vom 8. Dezember 2020 wurde die Unterstützung von Docker offiziell beendet. Für Kubernetes ist die bereits seit 2018 existierende alternative High-Level-Runtime Containerd wichtiger. Somit funktioniert Docker nicht mehr als Laufzeitumgebung in Kubernetes. Größere Projekte wie Red Hat und Suse verzichten bereits seit geraumer Zeit auf Docker und setzen auf Alternativen wie CRI-O.[51] In Kubernetes 1.21 vom 8. April gab es 51 Neuerungen, davon sind 13 nun als stabil eingestuft, wie z. B. die CronJobs-API, Immutable Secrets und ConfigMaps. Einzelne Secrets und ConfigMaps lassen sich abweichend vom Standard nun als unveränderlich (immutable) markieren. Da solche markierten Secrets nicht weiter überwacht werden, verbessert das die Performance von Clustern. Das Kubernetes-Team wechselte mit dieser Version auf einen neuen Modus, bei dem die Community neue Features und Bugs zur Veröffentlichung freigibt.[52]

Im April 2021 wechselte Kubernetes auf einen neuen Veröffentlichungszyklus. Statt einer neuen Version pro Quartal sind nun drei Versionen pro Jahr geplant. Die erste Version im neuen Zyklus ist Kubernetes 1.22 vom 4. August 2021. Darin gab es 53 Neuerungen, dabei sind 13 Features wie Server-side Apply in den stabilen Status übergegangen.[53] In Kubernetes 1.23 vom 7. Dezember 2021 sind elf Funktionen wie der Dual-Stack-Betrieb im Cluster, der horizontalen Pod-Autoscaler und generische Ephemeral Volumes stabilisiert worden. 19 neuen Funktionen wie die serverseitige Validierung von Feldern, die Anbindung an OpenAPI v3 und das Validieren von CRDs mit der Common Expression Language (CEL) kamen hinzu. 17 Funktionen wechselten aus der Alpha- in die Betaphase. Der FlexVolume-Treiber wurde auf den Status veraltet gesetzt uns sollte durch CSI ersetzt werden.[54] In Kubernetes 1.24 (Stargazer) vom 3. Mai 2022 wurde wie geplant die Docker Engine und der zur Kompatibilität mit dem CRI notwendigen Dockershim entfernt. Wer auf die Docker Engine angewiesen ist, kann die von Mirantis und Docker entwickelten cri-dockerd ein Ersatz für die Dockershim einsetzen. Die Anbindung an OpenAPI v3, gRPC Probes und der Kubelet Credential Provider sind in Kubernetes 1.24 in den Betastatus gegangen. Neue APIs im Betastatus werden seit dieser Version nicht mehr automatisch aktiviert.[8] Am 5. Juni 2022 gab die Apache Software Foundation (ASF) die Version 1.0.0 des Apache Flink Kubernetes Operator frei. Damit können Entwickler Flink-Cluster auf Kubernetes verwalten.[55][56] Am 23. August 2022 erschien Kubernetes 1.25 (Combiner). Darin wurden 40 Erweiterungen eingearbeitet, dreizehn davon wie der Pod Security Admission Controller und Ephemeral Container gelten nun offiziell als stabil. cgroups v2 wird nun vollständig unterstützt.[57] In Kubernetes 1.26 (Codename Electrifying) vom 9. Dezember 2022 hat das CRI die stabile Version 1.0 erreicht. Da Kubelet keine Nodes mehr registriert, wenn die Container-Runtime nicht vollständig kompatibel zu CRI v1 ist, wird containerd bis Version 1.5 nicht mehr unterstützt. Die Container Image Registry registry.k8s.io ist nun Standard, sie ermöglicht schnellere Downloads und die Verteilung von Lasten über mehrere Cloud-Anbieter und Regionen hinweg. Mit Kubernetes 1.26 wird der cosign-Signierprozess auf alle Client-, Server- und Quellcode-Tarballs, Binary-Artefakte, Software Bills of Material (SBOMs) sowie den Build-Ursprung ausgeweitet. Das erhöht die Sicherheit. Offizielle Container Images werden bereits seit Kubernetes 1.24 signiert.[58]

Am 11. April 2023 erschien Kubernetes 1.27 (Chill Vibes). Mit dieser Version gilt die alte Container Image Registry k8s.gcr.io nun als eingefroren. 60 Funktionen wurden in dieser Version mit Neuerungen versehen, davon wurden 13 stabilisiert, 29 in den Beta-Status erhoben und 18 Alpha-Features eingeführt. Zu den Alpha-Features zählt Node-Log-Zugriff mithilfe der Kubernetes-API.[59][60] In Kubernetes 1.28 Planternetes vom 15. August 2023 wurden zwölf bestehende Features stabilisiert und 14 Features in den Beta- sowie 19 Features in den Alpha-Status überführt. Als stabil gilt nun das Aufräumen nach dem unerwarteten Beenden eines Node und das Neustarten von Stateful Workloads auf einem anderen Node. Auch dann, wenn sich ein Node in einem nicht-wiederherstellbaren Zustand befindet. Ebenfalls stabil ist in dieser Version die automatische, rückwirkende Zuweisung einer standardmäßigen StorageClass. Mit einer StorageClass kann man die "Klassen" von Speicher beschreiben, die sie anbieten. Das ist etwa im Hinblick auf Quality-of-Service-Levels oder Backup-Richtlinien sinnvoll.[61] In Kubernetes 1.29 Mandala (The Universe) vom 13. Dezember 2023 wurden elf neue stabile, 19 Beta- und 19 Alpha-Features veröffentlicht. KMS v1 ist nun standardmäßig deaktiviert, alle Kubernetes-Ressourcen sollten nur noch mit KMS v2 verschlüsselt werden. Mit ReadWriteOncePod steht nun ein vierter Speicherzugriffsmodus zur Verfügung.[62]


Versionen (Auswahl)

Version Datum
1.8 29. September 2017
1.9 16. Dezember 2017
1.10 27. März 2018
1.11 27. Juni 2018
1.12 28. September 2018
1.13 3. Dezember 2018
1.14 25. März 2019
1.15 19. Juni 2019
1.16 18. September 2019
1.17 9. Dezember 2019
1.18 25. März 2020
1.19 26. August 2020
1.20 8. Dezember 2020
1.21 8. April 2021
1.22 4. August 2021
1.23 7. Dezember 2021
1.24 3. Mai 2022
1.25 23. August 2022
1.26 9. Dezember 2022
1.27 11. April 2023
1.28 15. August 2023
1.29 13. Dezember 2023

Weblinks

Quellen

  1. Releases · kubernetes/kubernetes · GitHub
  2. 2,0 2,1 As Kubernetes Hits 1.0, Google Donates Technology To Newly Formed Cloud Native Computing Foundation | TechCrunch, Jul 21, 2015
  3. GitHub - kubernetes/kubernetes: Production-Grade Container Scheduling and Management
  4. 4,0 4,1 Kubernetes 1.6 veröffentlicht - Pro-Linux, 30. März 2017
  5. 5,0 5,1 What is Kubernetes? - Kubernetes
  6. Kubeless – FaaS auf Kubernetes | heise Developer, 30.11.2018
  7. MicroK8s und Charmed Kubernetes auf neuestem Stand, 26.08.2020
  8. 8,0 8,1 Abgedockt: Kubernetes 1.24 Stargazer richtet den Blick zu den Sternen | heise online, 04.05.2022
  9. Google Open Sources Its Secret Weapon in Cloud Computing | WIRED, 06.10.14
  10. Announcing Tectonic: The Commercial Kubernetes Platform, April 6, 2015
  11. CoreOS und Kubernetes verbinden sich zu Tectonic - Pro-Linux, 7. April 2015
  12. Canonical expands enterprise container portfolio | Ubuntu Insights, 27 September 2016
  13. Kubernetes 1.5: Supporting Production Workloads | Linux.com | The source for Linux information, December 14, 2016
  14. Kubernetes 1.5 kommt besser mit zustandsbehafteten Containern zurecht - Pro-Linux, 15. Dezember 2016
  15. Kubernetes: Kubernetes 1.7: Security Hardening, Stateful Application Updates and Extensibility, June 29, 2017
  16. Container: Kubernetes 1.7 bringt einige Security-Erweiterungen | heise Developer, 30.06.2017
  17. Container: Docker unterstützt Kubernetes | heise Developer, 17.10.2017
  18. 18,0 18,1 Containerisierung: Red Hat kauft CoreOS | heise Developer, 31.01.2018
  19. New supported Puppet modules make Kubernetes deployments easier | Puppet, 11 January 2018
  20. Kubernetes: Puppet beschleunigt Cluster-Einrichtung | iX, 14.01.2018
  21. Managing Kubernetes Configuration with Puppet | Puppet, 16 December 2015
  22. Kubernetes Containerd Integration erreicht Produktionsreife | heise Developer, 25.05.2018
  23. Kubernetes Containerd Integration Goes GA - Kubernetes, May 24, 2018
  24. Google Cloud Platform Blog: Google Kubernetes Engine 1.10 is generally available and ready for the enterprise, May 21, 2018
  25. Google Kubernetes Engine 1.10: Mehr Optionen für Enterprise-Kunden | heise Developer, 22.05.2018
  26. "GPUs as a Service" für Kubernetes Engine allgemein verfügbar | heise Developer, 20.06.2018
  27. Google Cloud Platform Blog: GPUs as a service with Kubernetes Engine are now generally available, June 19, 2018
  28. Kubernetes 1.11: In-Cluster Load Balancing und CoreDNS sind stabil | heise Developer, 28.06.2018
  29. Kubernetes 1.11: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability - Kubernetes, June 27, 2018
  30. Google übergibt Kubernetes-Infrastruktur an Cloud Native - Pro-Linux, 30. August 2018
  31. Cloud Native Computing Foundation Receives $9 Million Cloud Credit Grant from Google Cloud to Fund Kubernetes Development, Empower Community - Cloud Native Computing Foundation, August 29, 2018
  32. Release v1.12.0 · kubernetes/kubernetes · GitHub
  33. Kubelet TLS Bootstrap mit Kubernetes 1.12 verfügbar | heise Developer, 02.10.2018
  34. openSUSE News - Kubic is now a certified Kubernetes distribution January 24th, 2019
  35. Opensuse Kubic erhält Kubernetes-Zertifikation - Pro-Linux, 25. Januar 2019
  36. Kubernetes 1.14: Jetzt auch für Windows-Container | heise online, 26.03.2019
  37. Rancher Labs kündigt Kubernetes-Distribution k3OS an - Pro-Linux, 26. April 2019
  38. Announcing k3OS: A Kubernetes Operating System, April 24, 2019
  39. Microsoft verspricht event-getriebenes Autoscaling für Kubernetes | heise online, 07.05.2019
  40. Announcing KEDA: bringing event-driven containers and functions to Kubernetes - Open Source blog, May 6, 2019
  41. Kubernetes 1.15 bietet mehr Erweiterbarkeit über Custom Resource Definitions | heise online, 20.06.2019
  42. Containerisierung: VMware setzt mit dem Project Pacific voll auf Kubernetes | heise online, 27. August 2019
  43. Kubernetes 1.16 startet mit mehr als 30 Verbesserungen | heise online, 19.09.2019
  44. Kubeflow: Die Machine-Learning-Werkzeugkiste für Kubernetes erreicht Version 1.0 | heise online, 03.03.2020
  45. CloudFoundry packt mit KubeCF das eigene Angebot auf Kubernetes | heise online
  46. Container-Orchestrierung: Kubernetes 1.18 bietet Beta-Bestandteile | heise online
  47. Kubernetes 1.18: Fit & Finish - Kubernetes, March 25, 2020
  48. Verpackungskünstler: Kubernetes paketieren mit kpt | heise online, 02.04.2020
  49. Container: Kubernetes 1.19 bietet mehr Vorhersehbarkeit und Stabilität | heise online, 27.08.2020
  50. Red Hat öffnet Kuberntes für Windows-Containter | heise online, 18.12.2020
  51. Container: Kubernetes beendet den Support für Docker | heise online, 03.12.2020
  52. Containerisierung: Kubernetes 1.21 mit stabilen CronJobs erschienen | heise online, 09.04.2021
  53. Container: Kubernetes 1.22 erweitert die Windows-Anbindung | heise online, 05.08.2021
  54. Containerisierung: Kubernetes 1.23 stabilisiert Betrieb mit zwei Netzwerk-Stacks | heise online, 08.12.2021
  55. Apache Flink Kubernetes Operator erreicht mit Version 1.0.0 Produktionsreife | heise online, 08.06.2022
  56. Apache Flink: Apache Flink Kubernetes Operator 1.0.0 Release Announcement, 05 Jun 2022
  57. Kubernetes 1.25: kurzlebige Container als ständiges Hilfsmittel | heise online, 24.08.2022
  58. Kubernetes 1.26 vollendet den Wechsel auf das Container Runtime Interface | heise online, 12.12.2022
  59. Kubernetes 1.27 wechselt vollständig zur neuen Container Image Registry | heise online, 12.04.2023
  60. Kubernetes v1.27: Chill Vibes | Kubernetes, April 11, 2023
  61. Container-Orchestrierung Kubernetes 1.28 stabilisiert Umgang mit Node-Shutdowns | heise online, 16.08.2023
  62. Kubernetes 1.29 Mandala erschienen | heise online, 14.12.2023