Veröffentlichung von Kubernetes 1.18, einem System zur Verwaltung eines Clusters isolierter Container

Veröffentlicht Veröffentlichung der Container-Orchestrierungsplattform Kubernetes 1.18, mit dem Sie einen Cluster isolierter Container als Ganzes verwalten können und Mechanismen zum Bereitstellen, Verwalten und Skalieren von in Containern ausgeführten Anwendungen bereitstellen. Das Projekt wurde ursprünglich von Google erstellt, dann aber auf eine unabhängige Website unter der Aufsicht der Linux Foundation übertragen. Die Plattform ist als universelle, von der Community entwickelte Lösung positioniert, die nicht an einzelne Systeme gebunden ist und mit jeder Anwendung in jeder Cloud-Umgebung arbeiten kann. Kubernetes-Code ist in Go und geschrieben vertrieben von lizenziert unter Apache 2.0.

Bietet Funktionen für die Bereitstellung und Verwaltung der Infrastruktur, wie z. B. DNS-Datenbankwartung, Lastausgleich,
Verteilung von Containern auf Clusterknoten (Containermigration je nach Laständerungen und Serviceanforderungen), Gesundheitsprüfungen auf Anwendungsebene, Kontoverwaltung, Aktualisierung und dynamische Skalierung eines laufenden Clusters, ohne ihn anzuhalten. Es ist möglich, Gruppen von Containern mit gleichzeitigen Aktualisierungs- und Rückgängigmachungsvorgängen für die gesamte Gruppe bereitzustellen sowie den Cluster logisch in Teile mit Aufteilung der Ressourcen aufzuteilen. Es gibt Unterstützung für die dynamische Migration von Anwendungen, für deren Datenspeicherung sowohl lokale Speicher als auch Netzwerkspeichersysteme verwendet werden können.

Die Version Kubernetes 1.18 enthält 38 Änderungen und Verbesserungen, von denen 15 in den stabilen Status und 11 in den Beta-Status verschoben wurden. Im Alpha-Status werden 12 neue Änderungen vorgeschlagen. Bei der Vorbereitung der neuen Version wurden gleichermaßen Anstrengungen unternommen, um verschiedene Funktionen zu verfeinern und die experimentellen Fähigkeiten zu stabilisieren sowie neue Entwicklungen hinzuzufügen. Wichtigste Änderungen:

  • kubectl
    • Hinzugefügt von Eine Alpha-Version des Befehls „kubectl debug“, mit der Sie das Debuggen in Pods vereinfachen können, indem Sie kurzlebige Container mit Debugging-Tools starten.
    • Für stabil erklärt den Befehl „kubectl diff“, mit dem Sie sehen können, was sich im Cluster ändert, wenn Sie das Manifest anwenden.
    • ENTFERNT alle Generatoren des Befehls „kubectl run“, mit Ausnahme des Generators zum Ausführen eines einzelnen Pods.
    • Geändert Flag „--dry-run“, abhängig von seinem Wert (Client, Server und keiner), wird die Probeausführung des Befehls auf der Client- oder Serverseite durchgeführt.
    • Kubectl-Code hervorgehoben in ein separates Repository. Dies ermöglichte die Entkopplung von kubectl von internen Kubernetes-Abhängigkeiten und erleichterte den Import von Code in Projekte von Drittanbietern.
  • Eintritt
    • Hat begonnen Ändern der API-Gruppe für Ingress in networking.v1beta1.
    • Hinzugefügt neue Felder:
      • pathType, mit dem Sie angeben können, wie der Pfad in der Anfrage verglichen wird
      • IngressClassName ist ein Ersatz für die Annotation kubernetes.io/ingress.class, die als veraltet erklärt wird. Dieses Feld gibt den Namen des speziellen Objekts InressClass an
    • Добавлен ein IngressClass-Objekt, das den Namen des Ingress-Controllers, seine zusätzlichen Parameter und das Zeichen seiner standardmäßigen Verwendung angibt
  • Service
    • Verfasst am das Feld AppProtocol, in dem Sie angeben können, welches Protokoll die Anwendung verwendet
    • Übersetzt im Beta-Status und standardmäßig aktiviertes EndpointSlicesAPI, das einen funktionaleren Ersatz für reguläre Endpoints darstellt.
  • Netzwerk
  • Permanente Festplatten. Die folgende Funktionalität wurde für stabil erklärt:
  • Anwendungskonfiguration
    • Zu ConfigMap- und Secret-Objekten hinzugefügt neues Feld „unveränderlich“. Wenn Sie den Feldwert auf „true“ setzen, wird eine Änderung des Objekts verhindert.
  • Planer
    • Hinzugefügt von Möglichkeit, zusätzliche Profile für Kube-Scheduler zu erstellen. War es früher notwendig, zusätzliche separate Scheduler auszuführen, um nicht standardmäßige Pod-Verteilungsalgorithmen zu implementieren, ist es jetzt möglich, zusätzliche Einstellungssätze für den Standard-Scheduler zu erstellen und seinen Namen im selben Pod-Feld „.spec.schedulerName“ anzugeben. Status - Alpha.
    • Räumung aufgrund von Makel für stabil erklärt
  • Skalierung
    • Hinzugefügt von Die Möglichkeit, im HPA-Manifest den Grad der Aggressivität anzugeben, wenn die Anzahl der ausgeführten Pods geändert wird, d. h. wenn die Last zunimmt, werden N-mal mehr Instanzen gleichzeitig gestartet.
  • kubelet
    • Topologie-Manager Beta-Status erhalten. Die Funktion ermöglicht die NUMA-Zuweisung, wodurch Leistungseinbußen auf Systemen mit mehreren Sockeln vermieden werden.
    • Beta-Status erhalten PodOverhead-Funktion, mit der Sie in RuntimeClass die zusätzliche Menge an Ressourcen angeben können, die zum Ausführen des Pods erforderlich sind.
    • Erweitert Unterstützung für HugePages, im Alpha-Status zusätzlich Isolation auf Containerebene und Unterstützung für mehrere Hugepages-Größen.
    • Gelöscht Endpunkt für Metriken /metrics/resource/v1alpha1, stattdessen wird /metrics/resource verwendet
  • API
    • Endlich Die Möglichkeit, die veralteten API-Gruppen apps/v1beta1 und extensions/v1beta1 zu verwenden, wurde entfernt.
    • Serverseitig anwenden auf Beta2-Status aktualisiert. Diese Verbesserung verlagert die Objektmanipulation von kubectl auf den API-Server. Die Autoren der Verbesserung behaupten, dass dadurch viele bestehende Fehler behoben werden, die in der aktuellen Situation nicht behoben werden können. Sie haben außerdem einen Abschnitt „.metadata.managedFields“ hinzugefügt, in dem sie vorschlagen, den Verlauf der Objektänderungen zu speichern und anzugeben, wer, wann und was genau geändert hat.
    • Angekündigt stabile CertificateSigningRequest-API.
  • Unterstützung der Windows-Plattform.

Source: opennet.ru

Kommentar hinzufügen