猿问

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

现在我在命令的帮助下将 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 项目中的函数列表


谢谢你的回答


RISEBY
浏览 144回答 2
2回答

哆啦的时光机

要使用 client-go 获取单个 pod:pod, err := clientset.CoreV1().Pods("pod_namespace").Get(context.TODO(),"pod_name", metav1.GetOptions{})if err!=nil {&nbsp; log.Fatalln(err)}// do something with pod

湖上湖

这yaml只是 etcd 中 kubernetes 内部存储中 Pod 对象的表示。你client-go得到的是Pod类型的实例v1.Pod。所以你应该能够使用这个对象本身并得到你想要的任何东西,例如p.Labels()等等。但是如果出于某种原因,你坚持要获得一个 yaml,你可以通过以下方式做到这一点:import (&nbsp; "sigs.k8s.io/yaml")b, err := yaml.Marshal(pod)if err != nil {&nbsp; // 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,就像任何其他函数一样去对象。
随时随地看视频慕课网APP

相关分类

Go
我要回答