Kubernetes

Kubernetes-Operator-Tutorial

Kubernetes-Operator-Tutorial
Kubernetes-Operatoren sind ein Konzept, das vom CoreOS-Projekt eingeführt wurde, um die Fähigkeiten von Kubernetes zu erweitern, insbesondere die Verwaltung von Stateful-Anwendungen. Es soll den gesamten Lebenszyklus zustandsbehafteter Ressourcen vom Paketieren der Anwendung über die Bereitstellung in einem Kubernetes-Cluster bis hin zur Verwaltung und Skalierung der App vereinfachen.

Zum Beispiel haben einige der Kernkomponenten von Kubernetes wie etcd ihre entsprechenden Operatoren, die vom CoreOs-Projekt zur Verfügung gestellt werden. Etcd ist ein verteilter Schlüsselwertspeicher, der den laufenden Zustand des gesamten Kubernetes-Clusters zu einem bestimmten Zeitpunkt widerspiegelt. Natürlich ist es eine zustandsbehaftete Anwendung und verschiedene Kubernetes-Controller beziehen sich auf etcd, um herauszufinden, was ihr nächster Schritt sein wird. Der ReplicaSet-Controller prüft beispielsweise die Anzahl der Pods, die unter einem bestimmten Selektor ausgeführt werden, und versucht, die Anzahl der ausgeführten Instanzen gleich der von Ihrem ReplicaSet- oder Deployment-YAML angegebenen Anzahl zu bringen. Das ReplicaSet bezieht sich auf etcd, das die Anzahl der laufenden Pods verfolgt und sobald die Anzahl der Pods auf einen gewünschten Wert geändert wird, aktualisiert das etcd auch seine Aufzeichnungen.

Aber wenn es um zustandsbehaftete Anwendungen wie etcd selbst geht, können wir ohne ernsthafte Eingriffe nicht mehr Pods auf verschiedenen Knoten einrichten. Weil alle laufenden Instanzen jederzeit miteinander konsistente Daten haben müssen. Hier kommen Operatoren ins Spiel.

Voraussetzungen

Wenn Sie diesem Tutorial folgen möchten, können Sie mit etwas Kleinem wie einem auf Ihrem Laptop installierten Minikube oder der Kubernetes-Distribution beginnen, die mit Docker für Desktops geliefert wird.

Wichtig ist, zunächst die Grundideen von Kubernetes zu verstehen.

usw

Erstellen wir einen Operator, der etcd in unserem Kubernetes-Cluster verwaltet. Wir werden etcd nicht als Kubernetes-Komponente (also im kube-system-Namespace) installieren, sondern als reguläre Anwendung. Denn das würde den gesamten Cluster gefährden. Sobald Sie jedoch mit Operatoren vertraut sind, können Sie sie verwenden, um etcd im kube-System bereitzustellen, während Sie einen neuen Cluster booten.

Ich werde hier Katacoda Playground verwenden, und ein genauerer Blick auf den kube-system-Namespace würde Ihnen zeigen, dass wir einen Pod haben, auf dem etcd für uns läuft. Aber daran werden wir nicht herumfummeln. Wir werden etcd im Standard-Namespace installieren, der von etcd-operator verwaltet wird

Ausgehend vom Standard-Namespace laufen keine Pods, wir haben einen sauberen Schiefer.

$ kubectl Pods erhalten

Keine Ressourcen gefunden.

Jetzt installieren wir eine neue etcd-Instanz in diesem Namespace. Wir beginnen mit dem Klonen des Repositorys, gefolgt von einem einfachen kubectl-Befehl.

$ git-Klon https://github.com/coreos/etcd-operator.git
$ cd etd-operator

Etcd-Operator erstellen

Im Repo gibt es mehrere Beispiele, an denen gearbeitet werden kann. Das erste würde einen einfachen etcd-Operator mit erstellen Einsatz.yaml Datei. Bevor wir das verwenden, müssen wir zunächst eine Rolle für den Operator erstellen, über die er den etcd-Cluster verwalten und skalieren kann. Sie können diese Rolle mit einem Shell-Skript erstellen create.

$ /example/rbac/create_role.Sch
$ kubectl create -f ./Beispiel/Bereitstellung.yaml

Das Operator-Objekt wird durch den letzten Befehl erstellt, obwohl es nichts zu bearbeiten gibt. Wir haben noch keinen etcd-Cluster. Also lass uns einen erstellen.

$ kubectl create -f ./beispiel/beispiel-etcd-cluster.yaml

Dadurch wird ein Cluster von etcd-Pods erstellt. Sie können sie sehen mit:

$ kubectl Pods erhalten
 
NAME                              BEREIT     STATUS    NEUSTARTEN   ALTER
etcd-operator-69b559656f-495vg    1/1       Läuft   0          9m
example-etcd-cluster-9bxfh657qq   1/1       Wird ausgeführt   0          23s
example-etcd-cluster-ntzp4hrw79   1/1       Wird ausgeführt   0          8 m
example-etcd-cluster-xwlpqrzj2q   1/1       Laufend   0          9 m

Der erste in dieser Liste ist der Operator-Pod, der sicherstellen würde, dass der etcd-Cluster einen bestimmten Zustand beibehält, wie in den zuvor verwendeten yaml-Dateien angegeben. Wenn Sie versuchen, einen der example-etcd-cluster-Pods zu löschen, wird ein anderer erstellt, der seinen Platz einnimmt. Das ist bemerkenswert ähnlich zu dem, was ReplicaSet tut, aber hier sind Pods zustandsbehaftet!

Operatoren im Allgemeinen

Wie bereits erwähnt, stellen Operatoren einen allgemeinen Rahmen dar, innerhalb dessen komplexe Anwendungen bereitgestellt und verwaltet werden können. Das Framework selbst macht sie nützlich und die speziellen Beispiele wie der etcd-Operator oder der Prometheus-Operator, die CoreOS bereitstellt, sollen Ihnen als Leitfaden für die Entwicklung Ihrer eigenen Anwendung auf ähnliche Weise dienen.

Einige wichtige Aspekte von Kubernetes-Operatoren sind das SDK zum Schreiben, Erstellen und Testen Ihres eigenen benutzerdefinierten Operators verwendet, der zweite ist die Idee von Operator Life Cycle Manager Operator in dem Sie über alle Phasen nachdenken können, die Ihr Betreiber sowie die von ihm angebotenen Dienste durchlaufen können.

Die Lebenszyklusphasen können verschiedene Updates umfassen, um herauszufinden, welcher Operator in welchen Namespaces ausgeführt wird, und auch um die Operatoren zu aktualisieren, wenn eine neue Version auf den Markt kommt.

Verweise

Lesen Sie mehr über diese Technologie in:

  1. Der ursprüngliche Beitrag von CoreOS und
  2. Der etcd-Operator kann hier erkundet werden
Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...