Heim > Backend-Entwicklung > Golang > Wie kann ich CustomResourceDefinitions (CRDs) mit Client-Go ansehen?

Wie kann ich CustomResourceDefinitions (CRDs) mit Client-Go ansehen?

DDD
Freigeben: 2024-11-02 06:28:02
Original
511 Leute haben es durchsucht

How to Watch CustomResourceDefinitions (CRDs) with Client-Go?

Watch CustomResourceDefinitions (CRDs) mit Client-Go

CustomResourceDefinitions (CRDs) erweitern die Kern-API von Kubernetes, damit Benutzer ihre eigenen erstellen und verwalten können eigene Ressourcentypen. Um auf Änderungen an CRDs zu achten, können Sie client-go verwenden, eine Kubernetes-Clientbibliothek.

Client-Go für Standardressourcen

Client-go bietet einen unkomplizierten Mechanismus um auf Änderungen in Standardressourcen wie Diensten zu achten. Das folgende Beispiel zeigt, wie Sie auf neue oder geänderte Dienste achten können:

<code class="go">import (
    "k8s.io/api/core/v1"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/tools/clientcmd"
)

func handleNewServices(clientset *kubernetes.Clientset) {
    for {
        serviceStreamWatcher, err := clientset.CoreV1().Services("").Watch(metav1.ListOptions{})
        if err != nil {
            panic(err.Error())
        }
        
        // Process events
        // ...
    }
}</code>
Nach dem Login kopieren

Client-Go für CRDs erweitern

Client-go erkennt CRDs nicht nativ. Um sie zu unterstützen, müssen Sie einen Client für Ihre benutzerdefinierten Ressourcen generieren. Kubernetes stellt zu diesem Zweck Tools zur Codegenerierung bereit.

Um beispielsweise einen Client für das im bereitgestellten Snippet definierte ApiGateway CRD zu erstellen, befolgen Sie die in [diesem Blogbeitrag] (Link zum Blogbeitrag) beschriebenen Schritte.

Codegenerierung

  1. Tools zur Codegenerierung installieren: Gehen Sie zur Installation von k8s.io/code-generator/cmd/client-gen
  2. Generieren Sie den Client: Führen Sie den folgenden Befehl aus und ersetzen Sie Ihre Gruppe durch die Gruppe Ihres CRD:

    client-gen --input-base "" --input your-group/v1 --output-base ./pkg --output-package pkg/clientset/versioned --clientset-name versioned
    Nach dem Login kopieren

Dadurch werden die erforderlichen API- und Client-Strukturen im pkg-Verzeichnis generiert.

Controller-Beispiel

Ein Beispiel finden Sie unter [diesem Beispiel-Controller] (Link zum Beispiel-Controller). wie Sie mithilfe des generierten Clients auf Ihr CRD achten können. Das Paket example_controller enthält den Code zur Verarbeitung von Überwachungsereignissen.

Kubebuilder

Um den Prozess der Generierung von Client-Konfigurationen und Controllern für CRDs zu vereinfachen, können Sie [kubebuilder]( Link zu kubebuilder). Dieses Tool automatisiert viele der oben beschriebenen Schritte.

Das obige ist der detaillierte Inhalt vonWie kann ich CustomResourceDefinitions (CRDs) mit Client-Go ansehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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