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

Veröffentlicht Release der Container-Orchestrierungsplattform Kubernetes 1.18, 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 wird unter der GPLv3-Lizenz bereitgestellt. 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
    • Hinzugefügt Die Alpha-Version des „kubectl debug“-Befehls erleichtert das Debugging in Pods, indem sie temporäre Container mit Debugging-Tools startet.
    • Ist jetzt stabil angekündigt. Der Befehl „kubectl diff“, der es ermöglicht zu sehen, welche Änderungen im Cluster vorgenommen werden, wenn ein Manifest angewendet wird.
    • Alle Generatoren des „kubectl run“-Befehls wurden entfernt, außer dem Generator für das Starten eines einzelnen Pods. 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.
    • Der kubectl-Code 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. Neue Felder: pathType, das angibt, nach welcher Methode der Pfad in der Anfrage verglichen werden soll.
  • Ingress
    • Es hat begonnen. 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.
    • Es wurden hinzugefügt 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
    • Hinzugefügt объект IngressClass, в котором указывается название ингресс контроллера, его дополнительные параметры и признак использования его по умолчанию
  • Service
    • Es wurde hinzugefügt Das Feld AppProtocol, in dem Sie das von der Anwendung verwendete Protokoll angeben können.
    • Übersetzt In den Beta-Status überführt und standardmäßig aktiviert ist EndpointSlicesAPI, das eine funktionalere Alternative zu den herkömmlichen Endpunkten darstellt.
  • Netzwerk
    • Support 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 wurde hinzugefügt neues Feld „immutable“. Das Setzen des Feldwerts auf true untersagt Änderungen am Objekt.
  • Scheduler
    • Hinzugefügt 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.
    • Taint-gestützte Räumung wurde als stabil erklärt
  • Skalierung
    • Hinzugefügt 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
    • Topology-Manager hat den Status Beta erhalten. Die Funktion umfasst NUMA-Verteilung, um eine Leistungsverschlechterung bei Multi-Socket-Systemen zu vermeiden.
    • Beta-Status erhalten die PodOverhead-Funktion, die es ermöglicht, in RuntimeClass zusätzliche Ressourcen anzugeben, die zum Starten eines Pods benötigt werden.
    • Erweitert 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.
    • Entfernt Endpoint für Metriken /metrics/resource/v1alpha1 wurde entfernt, stattdessen wird /metrics/resource verwendet.
  • API
    • Endgültig die Möglichkeit entfernt, die veralteten API-Gruppen apps/v1beta1 und extensions/v1beta1 zu verwenden.
    • ServerSide Apply 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.
    • Wurde bekanntgegeben stabilen CertificateSigningRequest API.
  • Unterstützung für die Windows-Plattform.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster