In Kubernetes ist die Überwachung von Änderungen an Diensten für die Aufrechterhaltung des Anwendungszustands von entscheidender Bedeutung. In diesem Artikel wird gezeigt, wie Sie die Ereignisüberwachung für Kubernetes-Dienste mithilfe der Client-Go-Bibliothek implementieren.
Zunächst richten Sie eine Kubernetes-Konfiguration ein, indem Sie mit clientcmd.BuildConfigFromFlags():
import ( "k8s.io/client-go/tools/clientcmd" ) // ... config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) if err != nil { panic(err.Error()) }
import ( "k8s.io/client-go/kubernetes" ) // ... clientset, err := kubernetes.NewForConfig(config)
import ( "k8s.io/client-go/tools/cache" v1 "k8s.io/client-go/pkg/api/v1" ) // ... watchlist := cache.NewListWatchFromClient(clientset.Core().RESTClient(), "services", v1.NamespaceDefault, fields.Everything())
informer := cache.NewInformer( watchlist, &v1.Service{}, time.Second * 0, cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { fmt.Printf("service added: %s \n", obj) }, DeleteFunc: func(obj interface{}) { fmt.Printf("service deleted: %s \n", obj) }, UpdateFunc: func(oldObj, newObj interface{}) { fmt.Printf("service changed \n") }, }, )
stop := make(chan struct{}) go informer.Run(stop)
Das obige ist der detaillierte Inhalt vonWie verwende ich Go Client-go, um Kubernetes-Serviceereignisse zu beobachten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!