亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用client-go訪問kubernetes CRD?

如何使用client-go訪問kubernetes CRD?

Go
侃侃無極 2023-08-21 14:32:26
我有很少的 CRD,但我不太確定如何查詢 kube-apiserver 來獲取 CR 列表。誰能提供任何示例代碼嗎?
查看完整描述

2 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

我的集群外配置示例代碼


    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/plural version of resource name"


如果您使用的是 minikube,您可以使用以下命令獲取配置文件kubectl config view


Kubernetes相關的導入如下


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

"k8s.io/client-go/kubernetes"


查看完整回答
反對 回復 2023-08-21
?
森欄

TA貢獻1810條經驗 獲得超5個贊

請參閱此頁面以獲取有關如何使用此存儲庫訪問 crd 的信息

有關更多信息,請參閱此 文檔


查看完整回答
反對 回復 2023-08-21
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

您需要使用非結構化客戶端,或者生成客戶端存根??刂破鬟\行時庫中的動態客戶端對此要好得多,我推薦它。



查看完整回答
反對 回復 2023-08-21
  • 2 回答
  • 0 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號