登录
首页 >  Golang >  Go问答

如何使用client-go访问kubernetes CRD?

来源:stackoverflow

时间:2024-04-18 15:12:39 484浏览 收藏

本篇文章给大家分享《如何使用client-go访问kubernetes CRD?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我有很少的 CRD,但我不太确定如何查询 kube-apiserver 来获取 CR 列表。谁能提供示例代码吗?


解决方案


我的集群外配置示例代码

var kubeconfig *string
    kubeconfig = flag.string("kubeconfig", "./config", "(optional) relative path to the kubeconfig file")
    flag.parse()

    // kubernetes config loaded from ./config or whatever the flag was set to
    config, err := clientcmd.buildconfigfromflags("", *kubeconfig)
    if err != nil {
        panic(err)
    }

    // instantiate our client with config
    clientset, err := kubernetes.newforconfig(config)
    if err != nil {
        panic(err)
    }

    // get a list of our crs
    pl := pingerlist{}
    d, err := clientset.restclient().get().abspath("/apis/pinger.hel.lo/v1/pingers").doraw(context.todo())
    if err != nil {
        panic(err)
    }
    if err := json.unmarshal(d, &pl); err != nil {
        panic(err)
    }

pingerlist{} 是一个从 kubebuilder 生成的对象,我稍后在代码中将其解组。但是,您可以直接使用 println(string(d)) 来获取该 json。

abspath() 中的组件为 "/apis/group/verison/资源名称的复数版本"

如果您使用的是 minikube,您可以使用 kubectl config view 获取配置文件

kubernetes相关的导入如下

"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/kubernetes"

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>