Release der Container-Orchestrierungsplattform , die es ermöglicht, ein Cluster aus isolierten Containern als Einheit zu verwalten und Mechanismen für die Bereitstellung, Wartung und Skalierung von in Containern ausgeführten Anwendungen bereitzustellen. Das Projekt wurde ursprünglich von Google ins Leben gerufen, dann jedoch auf eine unabhängige Plattform übertragen, die von der Linux Foundation betreut wird. Die Plattform wird als gemeinschaftlich entwickeltes, universelles Lösung konzipiert, das nicht an bestimmte Systeme gebunden ist und in der Lage ist, mit beliebigen Anwendungen in allen Cloud-Umgebungen zu arbeiten. Der Code von Kubernetes ist in Go geschrieben und unter der Apache 2.0-Lizenz.
Bietet Funktionen zur Bereitstellung und Verwaltung von Infrastruktur, wie z. B. DNS-Verwaltung, Lastenausgleich,
Die Verteilung von Containern auf die Knoten des Clusters (Migration von Containern je nach Laständerung und Serviceanforderungen), die Überprüfung der Funktionalität auf Anwendungsebene, das Account-Management, das Aktualisieren und dynamische Skalieren des laufenden Clusters, ohne es anzuhalten. Es ist möglich, Gruppen von Containern bereitzustellen und gleichzeitig Aktualisierungs- und Rücksetzoperationen für die gesamte Gruppe durchzuführen, sowie eine logische Aufteilung des Clusters in Teile mit Ressourcenteilung. Die Unterstützung für die dynamische Migration von Anwendungen ist vorhanden, wobei sowohl lokale Speicher als auch Netzwerkspeichersysteme für die Datenspeicherung verwendet werden können.
Die Version Kubernetes 1.18 beinhaltet 38 Änderungen und Verbesserungen, von denen 15 auf den stabilen Status und 11 auf den Beta-Status überführt wurden. 12 neue Änderungen wurden im Alpha-Status vorgeschlagen. Bei der Vorbereitung der neuen Version wurde gleich viel Aufwand in die Weiterentwicklung verschiedener Funktionen und die Stabilisierung experimenteller Möglichkeiten sowie in die Einführung neuer Entwicklungen gesteckt. Wichtige Änderungen:
- Kubectl
- Die Alpha-Version des „kubectl debug“-Befehls erleichtert das Debugging in Pods, indem sie temporäre Container mit Debugging-Tools startet.
- Der Befehl „kubectl diff“, der es ermöglicht zu sehen, welche Änderungen im Cluster vorgenommen werden, wenn ein Manifest angewendet wird.
- Der Schalter „--dry-run“ wurde geändert; je nach Wert (client, server und none) wird die Testausführung des Befehls entweder clientseitig oder serverseitig durchgeführt.
- wurde in ein separates Repository ausgelagert. Dies ermöglichte es, kubectl von internen Abhängigkeiten von Kubernetes zu trennen und erleichterte den Import des Codes in Drittanbieterprojekte.
- Änderung der API-Gruppe für Ingress auf networking.v1beta1. pathType, das angibt, nach welcher Methode der Pfad in der Anfrage verglichen werden soll.
- Ingress
- IngressClassName — Ersatz für die Annotation kubernetes.io/ingress.class, die als veraltet gekennzeichnet ist. In diesem Feld wird der Name des speziellen Objekts IngressClass angegeben.
- Das IngressClass-Objekt, in dem der Name des Ingress-Controllers, dessen zusätzliche Parameter und das Zeichen für die Standardverwendung angegeben sind.
- pathType, позволяющее указать каким способом будет сравниваться путь в запросе
- IngressClassName — замена аннотации kubernetes.io/ingress.class, которая объявлена deprecated. В этом поле указывается название специального объекта InressClass
- объект IngressClass, в котором указывается название ингресс контроллера, его дополнительные параметры и признак использования его по умолчанию
- Service
- Das Feld AppProtocol, in dem Sie das von der Anwendung verwendete Protokoll angeben können.
- In den Beta-Status überführt und standardmäßig aktiviert ist EndpointSlicesAPI, das eine funktionalere Alternative zu den herkömmlichen Endpunkten darstellt.
- Netzwerk
- IPv6 wurde in den Beta-Status überführt.
- Persistente Volumes. Die folgende Funktionalität wurde als stabil erklärt:
- Konfiguration der Anwendung
- In ConfigMap- und Secret-Objekte neues Feld „immutable“. Das Setzen des Feldwerts auf true untersagt Änderungen am Objekt.
- Scheduler
- die Möglichkeit, zusätzliche Profile für den kube-scheduler zu erstellen. Wenn zuvor separate zusätzliche Scheduler benötigt wurden, um benutzerdefinierte Pod-Zuweisungsalgorithmen zu implementieren, besteht jetzt die Möglichkeit, zusätzliche Konfigurationen für den Standard-Scheduler zu erstellen und seinen Namen im selben Pod-Feld „.spec.schedulerName“ anzugeben. Status — Alpha.
- wurde als stabil erklärt
- Skalierung
- Die Möglichkeit, im HPA-Manifest den Grad der Aggressivität beim Ändern der Anzahl der ausgeführten Pods anzugeben, bedeutet, dass bei zunehmender Last sofort um das N-Fache mehr Instanzen gestartet werden.
- Kubelet
- hat den Status Beta erhalten. Die Funktion umfasst NUMA-Verteilung, um eine Leistungsverschlechterung bei Multi-Socket-Systemen zu vermeiden.
- Beta-Status die PodOverhead-Funktion, die es ermöglicht, in RuntimeClass zusätzliche Ressourcen anzugeben, die zum Starten eines Pods benötigt werden.
- Unterstützung für HugePages, in Alpha-Status wurde die Isolierung auf der Containerebene hinzugefügt und Unterstützung für mehrere Größen von HugePages.
- Endpoint für Metriken /metrics/resource/v1alpha1 wurde entfernt, stattdessen wird /metrics/resource verwendet.
- API
- die Möglichkeit entfernt, die veralteten API-Gruppen apps/v1beta1 und extensions/v1beta1 zu verwenden.
- wurde auf den Status Beta2 erhöht. Diese Verbesserung verlagert die Objektmanipulation von kubectl auf den API-Server. Die Autoren der Verbesserung behaupten, dass dies viele bestehende Fehler beheben wird, die in der aktuellen Situation nicht korrigiert werden können. Außerdem wurde der Abschnitt „.metadata.managedFields“ hinzugefügt, in dem die Änderungshistorie des Objekts gespeichert werden soll, einschließlich wer, wann und was genau geändert hat.
- stabilen CertificateSigningRequest API.
- Unterstützung für die Windows-Plattform.
- Die Unterstützung für Windows-Knoten wird weiter ausgebaut. Alpha-Versionen hinzugefügt:
- Die Unterstützung für
- Die Unterstützung für Windows-Knoten wird weiter ausgebaut. Alpha-Versionen hinzugefügt:
Quelle: opennet.ru
