So erstellen Sie CRD in Kubernetes

So Erstellen Sie Crd In Kubernetes



Lassen Sie uns in diesem Artikel lernen, das CRD in Kubernetes zu erstellen. In diesem Tutorial zeigen wir Ihnen, wie Sie CRD in Kubernetes erstellen und dann einen Kubernetes-Controller erstellen, der verwendet wird, um die Instanzerstellungsanforderungen von CRD zu verarbeiten. Wir würden jeden Schritt anhand von Beispielen demonstrieren, um Ihnen zu helfen, die Funktionsweise der Erstellung des CRD zusammen mit dem Controller-Objekt zur Verarbeitung von CRD in Kubernetes vollständig zu verstehen. Fangen wir also an!

Was ist CRD in Kubernetes?

CRD steht für Custom Resource Definition, die für neue Ressourcen verwendet wird, ohne einen weiteren API-Server hinzuzufügen. Um mit CRDs zu arbeiten, müssen Sie die API-Aggregation nicht verstehen. Es ist eine sehr leistungsstarke Funktion, die in Kubernetes 1.7 eingeführt wurde und mit verschiedenen integrierten Ressourcen und API-Objekten ausgeliefert wird. Es ermöglicht Ihnen, benutzerdefinierte Ressourcen mit einem Schema und einem Namen Ihrer Wahl zu definieren.

CRDs erweitern die Kubernetes-API-Fähigkeiten, die über die Standardinstallation hinausgehen, indem sie die benutzerdefinierten Ressourcendefinitionen verwenden. Durch die Verwendung von CRDs können Sie Kubernetes so steuern, dass es mehr als nur Container verarbeiten kann. Sie können eine benutzerdefinierte Ressource Ihrer Wahl erstellen und sie deklarativ machen, indem Sie die benutzerdefinierten Controller verwenden. Lassen Sie uns nun lernen, wie man eine benutzerdefinierte Ressourcendefinition erstellt und dann einen benutzerdefinierten Controller zur Steuerung des CRD entwirft. Und dann, wie man CDR löscht, um seine Auswirkungen auf Kubernetes zu sehen.







Voraussetzung

Bevor wir mit den Schritten zum Erstellen und Löschen von CRDs fortfahren, stellen wir sicher, dass unser System alle Anforderungen der Voraussetzungen erfüllt.



  • Ubuntu 20.04 oder eine andere aktuelle Version, damit eine Linux/Unix-Umgebung funktioniert.
  • Kubernetes-Cluster.
  • Kubectl-CLI zur Verwendung von kubectl-Befehlen, Clusterkommunikation und Verwaltung der Entwicklungsumgebung.
  • Minikube oder eine andere Kubernetes-Spielwiese zum Erstellen der Cluster

Installieren Sie diese Tools, falls Sie sie noch nicht installiert haben, bevor Sie mit dem nächsten Abschnitt fortfahren.



Nun fahren wir mit der Schritt-für-Schritt-Anleitung zum Erstellen von CRDs in Kubernetes fort.





Schritt Nr. 1: Starten Sie Kubernetes

Um mit CDRs arbeiten zu können, benötigen Sie einen Cluster mit mindestens zwei Kubernetes-Knoten, die nicht als Hosts der Steuerungsebene fungieren. Wir verwenden den Minikube, um den Cluster zu erstellen und zu verwenden. Verwenden Sie also den unten angegebenen Befehl, um den Minikube zu starten:

> minikube start

Wenn Sie diesen Befehl ausführen, erhalten Sie eine ähnliche Ausgabe wie die unten angegebene:



Schritt 2: Öffnen oder erstellen Sie eine Konfigurationsdatei

Nachdem unser Minikube nun betriebsbereit ist, öffnen wir die Konfigurationsdatei. Mit dem Befehl „nano“ werden die Konfigurationsdateien geöffnet. Alles, was Sie tun müssen, ist, den Dateinamen neben dem nano-Befehl gefolgt von der Dateierweiterung anzugeben und die Eingabetaste zu drücken. Hier haben wir die Datei „red.yaml“, die die Konfigurationsdetails zum Erstellen der CRDs enthält. Hier ist der vollständige Nano-Befehl, mit dem Sie Ihre gewünschte Datei öffnen können:

> nano rot.yaml

Wenn Sie diesen Befehl ausführen, wird die folgende Datei in Ihrem Terminal geöffnet:

Schritt Nr. 3: Erstellen Sie eine Endpunktressource

Die Konfigurationsressourcen wurden in der red.yaml gespeichert. Wir werden dies verwenden, um den neuen Namespaced-RESTful-API-Endpunkt zu erstellen. Kubectl bietet den Befehl „apply“, um einen Endpunkt aus einer Konfigurationsdatei zu erstellen. Hier ist der vollständige „apply“-Befehl, der verwendet wird, um die neue namespaced RESTful API zu erstellen:

> kubectl gelten -f rot.yaml

Der von diesem Befehl erstellte Endpunkt wird verwendet, um das benutzerdefinierte Objekt zu erstellen, das die CRD steuert. Die folgende Ausgabe wird für die Namespace-Ressource generiert:

Schritt Nr. 4: Erstellen Sie ein benutzerdefiniertes Objekt, um das CRD zu steuern

Die CRDs werden von den benutzerdefinierten Objekten gesteuert. Wir können sie erstellen, sobald die benutzerdefinierte Ressourcendefinition erstellt wurde. Die benutzerdefinierten Objekte enthalten die benutzerdefinierten Felder von beliebigem JSON. Um das benutzerdefinierte Objekt zu erstellen, benötigen wir erneut eine YAML-Konfigurationsdatei. Verwenden Sie den Befehl „nano“, um die YAML-Konfigurationsdatei zu erstellen:

> nano ct.yaml

Speichern Sie die erforderlichen Felder mit den spezifischen Details in der YAML-Datei. Die Beispielkonfigurationsdetails sind im folgenden Beispiel dargestellt:

Verwenden Sie nun dieselbe YAML-Datei, um das benutzerdefinierte Objekt zu erstellen. Verwenden Sie den Befehl „apply“, um das benutzerdefinierte Objekt aus der angegebenen YAML-Datei zu erstellen. Siehe den vollständigen Befehl unten:

> kubectl gelten -f ct.yaml

Nach erfolgreicher Ausführung dieses Befehls erhalten Sie die folgende Ausgabe:

Schritt Nr. 5: Verwalten Sie das CRD mit einem benutzerdefinierten Objekt

Die benutzerdefinierten Objekte werden verwendet, um die CRDs zu verwalten. Lassen Sie uns also lernen, wie wir das kürzlich erstellte benutzerdefinierte Objekt verwenden können, um das bereits erstellte CRD zu verwalten. Hier werden wir die Details überprüfen, die das benutzerdefinierte Objekt enthalten, indem wir den Befehl „get“ verwenden. Sehen Sie sich den Befehl an, der im folgenden Code-Snippet angegeben ist:

> kubectl bekommt crontab

Wenn Sie diesen Befehl im Minikube-Terminal ausführen, wird die folgende Ausgabe generiert:

Wenn Sie die in der YAML-Datei enthaltenen Rohdaten überprüfen möchten, können Sie diesen Befehl verwenden:

> kubectl bekommt ct -Die Jaml

Dadurch werden die Rohdaten in der YAML-Datei wie im folgenden Beispiel angezeigt:

So können wir das CRD und ein benutzerdefiniertes Objekt erstellen, um das erstellte CRD zu verwalten und zu steuern. Wenn Sie nun das erstellte CRD löschen möchten, können Sie dem unten angegebenen Verfahren folgen.

Wie lösche ich die in Kubernetes erstellten CRDs?

Mit den kubectl-Befehlen können Sie die CRDs in Kubernetes löschen. Wenn Sie versuchen, das CRD in Kubernetes zu löschen, werden die damit verknüpften benutzerdefinierten Ressourcen ebenfalls gelöscht. kubectl bietet den Befehl „delete“, um eine beliebige Ressource zu löschen. Der unten angegebene Befehl wird verwendet, um die CRD zu löschen, die wir in den obigen Schritten erstellt haben:

> kubectl löschen -f rot.yaml

Nach erfolgreicher Ausführung dieses Befehls erhalten Sie das folgende Ergebnis:

Nachdem das CRD und die damit verknüpften benutzerdefinierten Objekte gelöscht wurden, erhalten Sie eine Fehlermeldung vom Server, wenn Sie versuchen, darauf zuzugreifen. Sehen Sie sich den unten angegebenen Befehl an, in dem wir versuchen, auf die Namespace-RESTful-API zuzugreifen:

> kubeclt bekommt Crontabs

Da die „crontabs“ gelöscht wurden, wird der Server den Fehler für diese Aktion auslösen. Sehen Sie sich die Ausgabe dieses Befehls unten an:

Fazit

Dieser Artikel gab einen kurzen Überblick darüber, wie Sie die benutzerdefinierte Ressourcendefinition erstellen, wie Sie ein benutzerdefiniertes Objekt zur Steuerung der CRDs erstellen und wie Sie die CRD aus Kubernetes löschen. Anhand von Musterbeispielen haben wir jeden Schritt demonstriert, damit Sie den Prozess einfach und schnell verstehen können.