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!