client-go实战之五:DiscoveryClient
package main
import (
"context"
"fmt"
"log"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/discovery"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
// 使用kubeconfig配置文件创建一个配置对象
config, err := clientcmd.BuildConfigFromFlags("", "/path/to/kubeconfig")
if err != nil {
log.Fatalf("Error building kubeconfig: %s", err.Error())
}
// 创建一个DiscoveryClient实例
discoveryClient, err := discovery.NewDiscoveryClientForConfig(config)
if err != nil {
log.Fatalf("Error building DiscoveryClient: %s", err.Error())
}
// 使用DiscoveryClient获取集群的GroupVersion列表
groupList, err := discoveryClient.ServerGroups()
if err != nil {
log.Fatalf("Error discovering server groups: %s", err.Error())
}
// 打印获取到的GroupVersion列表
for _, group := range groupList.Groups {
fmt.Printf("Group: %s, Versions: %v\n", group.Name, group.Versions)
}
}
这段代码展示了如何使用client-go库中的DiscoveryClient来获取Kubernetes集群支持的GroupVersion列表。首先,它通过kubeconfig文件配置了一个*rest.Config对象,然后使用这个配置对象创建了一个DiscoveryClient实例。接下来,它调用ServerGroups方法获取集群的GroupVersion信息,并打印出来。这个过程对于理解Kubernetes集群的API组件是非常有用的。
评论已关闭