在 Kubernetes 中,監控服務的變更對於維護應用程式的健康至關重要。本文示範如何使用 client-go 函式庫實作 Kubernetes 服務的事件監視。
首先,透過使用 clientcmd.BuildConfigFromFlags() 建立設定物件來建立 Kubernetes 設定:
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)
以上是如何使用Go Client-go觀看Kubernetes服務事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!