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

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

kubectl get pod <pod> -n <namespace> -o yaml in

kubectl get pod <pod> -n <namespace> -o yaml in

Go
RISEBY 2023-01-03 09:53:42
現在我在命令的幫助下將 Pod 作為 Kubernetes 結構pods , err := clientset.CoreV1().Pods("namespace_String").List(context.TODO(), metav1.ListOptions{})現在我把它作為單獨的 yaml 文件獲取 我應該使用哪個命令for i , pod := range pods.Items{    if i==0{        t := reflect.TypeOF(&pod)        for j := 0; j<t.NumMethod(); j++{            m := t.Method(j)            fmt.Println(m.Name)}}}此函數將打印我應該使用的 pod 項目中的函數列表謝謝你的回答
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

要使用 client-go 獲取單個 pod:


pod, err := clientset.CoreV1().Pods("pod_namespace").Get(context.TODO(),"pod_name", metav1.GetOptions{})

if err!=nil {

  log.Fatalln(err)

}

// do something with pod


查看完整回答
反對 回復 2023-01-03
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

這yaml只是 etcd 中 kubernetes 內部存儲中 Pod 對象的表示。你client-go得到的是Pod類型的實例v1.Pod。所以你應該能夠使用這個對象本身并得到你想要的任何東西,例如p.Labels()等等。但是如果出于某種原因,你堅持要獲得一個 yaml,你可以通過以下方式做到這一點:


import (

  "sigs.k8s.io/yaml"

)


b, err := yaml.Marshal(pod)

if err != nil {

  // handle err

}

log.Printf("Yaml of the pod is: %q", string(b))


請注意,yaml這里的庫不是來自client-go庫。該yaml庫的文檔可以在以下位置找到:https ://pkg.go.dev/sigs.k8s.io/yaml#Marshal


如果yaml您想使用json,您可以簡單地使用結構本身 提供的Marshal函數https://pkg.go.dev/k8s.io/apiserver/pkg/apis/example/v1#Pod.Marshalv1.Pod,就像任何其他函數一樣去對象。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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