Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menggunakan Go Client-go untuk Menonton Acara Perkhidmatan Kubernetes?
Dalam Kubernetes, pemantauan perubahan pada perkhidmatan adalah penting untuk mengekalkan kesihatan aplikasi. Artikel ini menunjukkan cara untuk melaksanakan menonton acara untuk perkhidmatan Kubernetes menggunakan pustaka klien-go.
Untuk bermula, wujudkan konfigurasi Kubernetes dengan mencipta objek konfigurasi menggunakan clientcmd.BuildConfigFromFlags():
import ( "k8s.io/client-go/tools/clientcmd" ) // ... config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) if err != nil { panic(err.Error()) }
Gunakan konfigurasi untuk mencipta pelanggan Kubernetes baharu:
import ( "k8s.io/client-go/kubernetes" ) // ... clientset, err := kubernetes.NewForConfig(config)
Buat senarai pantau yang mewakili perkhidmatan yang anda ingin pantau:
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())
Tubuhkan pemberi maklumat untuk mengendalikan acara masuk:
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") }, }, )
Jalankan pemberi maklumat untuk mula memantau acara:
stop := make(chan struct{}) go informer.Run(stop)
Pastikan program berjalan tanpa had untuk meneruskan pemantauan untuk acara perkhidmatan:
for { time.Sleep(time.Second) }
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Go Client-go untuk Menonton Acara Perkhidmatan Kubernetes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!