Aufbau eines Kubernetes-Operators für fortlaufende Updates

WBOY
Freigeben: 2024-02-09 22:18:19
nach vorne
438 Leute haben es durchsucht

构建 Kubernetes Operator 用于滚动更新

php-Editor Xiaoxin ist hier, um Ihnen vorzustellen, wie Sie einen Kubernetes-Operator für fortlaufende Updates erstellen. Ein Kubernetes-Operator ist ein benutzerdefinierter Controller, der die Funktionen der Kubernetes-Plattform erweitert. Rolling Updates sind eine Möglichkeit, eine Anwendung schrittweise zu aktualisieren, ohne den Dienst zu unterbrechen. Indem wir einen Operator speziell für fortlaufende Updates erstellen, können wir Upgrades und Rollbacks der Anwendung flexibler verwalten. In diesem Artikel werden die grundlegenden Schritte zum Aufbau eines Kubernetes-Operators vorgestellt und ausführlich erläutert, wie die Rolling-Update-Funktion implementiert wird. Lass uns genauer hinschauen!

Frageinhalt

Ich habe eine Kubernetes-Anwendung erstellt (z. B. D1 bereitstellen, mit Docker-Image I1), die auf einem Client-Cluster ausgeführt wird.

Anforderung 1:

Jetzt möchte ich jedes Mal, wenn ich mein Docker-Image I1 aktualisiere, ein fortlaufendes Update durchführen, ohne dass es auf der Client-Seite zu einem Aufwand kommt (Irgendwie sollte der Client-Cluster automatisch das neueste Docker-Image abrufen)

Anforderung 2:

Immer wenn ich eine bestimmte configMap aktualisiere, sollte der Client-Cluster automatisch mit der Verwendung der neuen configMap beginnen

Wie soll ich dieses Ziel erreichen?

  1. Kubernetes-Cronjobs nutzen?
  2. Kubernetes-Betreiber?
  3. oder etwas anderes?

Ich habe gehört, dass der k8s-Operator nützlich ist

Workaround

Beginnen Sie mit Anforderung 2:

Immer wenn ich eine bestimmte configMap aktualisiere, sollte der Client-Cluster dies tun Beginnen Sie automatisch mit der Verwendung der neuen configMap

Wenn die Konfigurationszuordnung in der Bereitstellung installiert ist, wird sie automatisch aktualisiert. Wenn sie jedoch als Umgebungsneustart eingefügt wird, besteht die einzige Option darin, es sei denn, Sie verwenden eine Sidecar-Lösung oder starten den Prozess neu.

Referenz: Konfigurationskarte aktualisieren, ohne POD neu zu starten

Wie soll ich das erreichen?

  • ImagePullpolicy ist keine gute Option. In diesem Fall ist jedoch ein manueller Eingriff erforderlich, um die Bereitstellung neu zu starten Extrahieren Sie das neuesteBild vom Client und es wird nicht funktionieren kontrollierte Art und Weise.

Kubernetes-Cronjobs nutzen?

  • Auf welcher Seite werden Sie Ihre Cronjobs ausführen? Wenn es ein Kunde ist, ist es das Auch so.

    Andernfalls können Sie die bereitgestellte API verwenden, um die Bereitstellung fortzusetzen, wodurch der Job ausgeführt wird Wenn Sie ein Image übertragen, aktualisieren Sie die Bereitstellung mit dem neuesten Tag zu Ihrer Docker-Registrierung.

Kubernetes-Betreiber?

    Der
  • -Operator ist eine großartige native K8s-Option, die Sie in Go schreiben können. Python oder Ihre bevorzugte Sprache mit/ohne Operator-Framework oder Client-Bibliotheken.

oder etwas anderes?

Wenn Sie nur die Bereitstellung aktualisieren, die API in einer Bereitstellung oder einem Job ausführen möchten, können Sie dies auf kontrollierte Weise planen und es wird keine Probleme mit dem Operator geben, es handelt sich um ein eher natives Problem, wenn Sie dies tun Wenn Sie eine Methode erstellen, verwalten und bereitstellen können, ist dies eine gute Möglichkeit.

Wenn Sie in Zukunft alle Ihre Cluster (Bereitstellungen, Dienste, Firewalls, Netzwerke) über mehrere Clients hinweg von einer einzigen Quelle der Wahrheit aus verwalten müssen, können Sie Anthos erkunden.

Konfigurationsverwaltung Antos für Git-Repository-Synchronisierung

Das obige ist der detaillierte Inhalt vonAufbau eines Kubernetes-Operators für fortlaufende Updates. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage