Regardez les CustomResourceDefinitions (CRD) avec Client-Go
CustomResourceDefinitions (CRD) étendent l'API principale de Kubernetes pour permettre aux utilisateurs de créer et de gérer leurs propres types de ressources. Pour surveiller les modifications apportées aux CRD, vous pouvez utiliser client-go, une bibliothèque client Kubernetes.
Client-Go pour les ressources standard
Client-go fournit un mécanisme simple pour surveiller les changements dans les ressources standard telles que les services. L'exemple suivant montre comment surveiller les services nouveaux ou modifiés :
<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>
Extension de Client-Go pour les CRD
Client-go ne reconnaît pas nativement les CRD. Pour les prendre en charge, vous devez générer un client pour vos ressources personnalisées. Kubernetes fournit des outils de génération de code à cet effet.
Par exemple, pour créer un client pour le CRD ApiGateway défini dans l'extrait fourni, suivez les étapes décrites dans [cet article de blog](lien vers l'article de blog).
Génération de code
Générer le client : Exécutez la commande suivante en remplaçant your-group par le groupe de votre CRD :
client-gen --input-base "" --input your-group/v1 --output-base ./pkg --output-package pkg/clientset/versioned --clientset-name versioned
Cela générera l'API et les structures client nécessaires dans le répertoire pkg.
Exemple de contrôleur
Référez-vous à [cet exemple de contrôleur](lien vers l'exemple de contrôleur) pour un exemple sur la façon de surveiller votre CRD à l'aide du client généré. Le package example_controller contient le code permettant de gérer les événements de surveillance.
Kubebuilder
Pour simplifier le processus de génération de configurations client et de contrôleurs pour les CRD, vous pouvez utiliser [kubebuilder]( lien vers kubebuilder). Cet outil automatise de nombreuses étapes décrites ci-dessus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!