Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从kubectl Descripte pods检索所有数据<;名称空间>;来自集群内客户端go api调用_Go_Kubernetes_Kubectl_Client Go - Fatal编程技术网

如何从kubectl Descripte pods检索所有数据<;名称空间>;来自集群内客户端go api调用

如何从kubectl Descripte pods检索所有数据<;名称空间>;来自集群内客户端go api调用,go,kubernetes,kubectl,client-go,Go,Kubernetes,Kubectl,Client Go,我需要获取一些pod信息,这些信息将用于集群中运行的一些单元测试。我需要kubectl描述po提供的所有信息,但这些信息来自集群内api调用 我有一些工作代码,可以对api/metrics.k8s.io/v1beta1/pods进行api调用,并在minikube上安装了metrics服务器进行测试,这些代码都在工作,并提供如下输出: Namespace: kube-system Pod name: heapster-rgnlj SelfLink: /apis/metrics.k8s.io/v1

我需要获取一些pod信息,这些信息将用于集群中运行的一些单元测试。我需要kubectl描述po提供的所有信息,但这些信息来自集群内api调用

我有一些工作代码,可以对api/metrics.k8s.io/v1beta1/pods进行api调用,并在minikube上安装了metrics服务器进行测试,这些代码都在工作,并提供如下输出:

Namespace: kube-system
Pod name: heapster-rgnlj
SelfLink: /apis/metrics.k8s.io/v1beta1/namespaces/kube-system/pods/heapster-rgnlj
CreationTimestamp: 2019-09-10 12:27:13 +0000 UTC
Window: 30s
Timestamp: 2019-09-10 12:26:23 +0000 UTC
Name: heapster
Cpu usage: 82166n
Mem usage: 19420Ki 
正如我所说,我真正需要的是通过“描述吊舱”类型的调用得到的。在查看了kubernetes源代码之后,这个NodeDescriptor看起来是正确的函数类型,但是我对如何集成/实现它以获得所需的结果有点茫然

kubernetes/pkg/printers/internalversion/description.go

4f2d7b9中的第2451行

func(d*nodedescriper)descripe(名称空间、名称字符串、描述符设置等)

我是新手,对库伯内特斯不太熟悉。
任何关于如何进行的建议都将不胜感激。

我没有尝试,但我建议从以下方面开始:

1。使用kubectl和--verbosity选项查看完整的api请求

 kubectl describe pod xxx -v=8 
比如:

它包含与POD相关的字段:fieldSelector=involvedObject.uid、involvedObject.name、involvedObject.namespace

2.我认为这是一个好的开始,首先是github的代码


希望这有帮助。

我没有尝试,但我建议从以下方面开始:

1。使用kubectl和--verbosity选项查看完整的api请求

 kubectl describe pod xxx -v=8 
比如:

它包含与POD相关的字段:fieldSelector=involvedObject.uid、involvedObject.name、involvedObject.namespace

2.我认为这是一个好的开始,首先是github的代码

希望能有所帮助。

通过staging/src/k8s.io/kubectl/pkg/descripe/versioned/descripe.go查看和函数,应该可以更好地了解如何执行此操作。由于和是公共的,您可以在用例中重用它们

您可以将其与具有func的耦合,该函数返回具有func的,该func将返回给定命名空间的对象列表

这些pod对象将提供func所需的名称,名称空间是已知的,并且只是一种结构类型,您可以内联以在输出中显示事件

使用func将只列出一次的POD。如果您对定期更新此列表感兴趣,您可能希望查看反射器和告密者模式;这两个概念大部分都在包中实现,文档在本节中简要解释了这一概念

希望这能有所帮助。

通过staging/src/k8s.io/kubectl/pkg/descripe/versioned/descripe.go查看和函数,应该可以更好地了解如何执行此操作。由于和是公共的,您可以在用例中重用它们

您可以将其与具有func的耦合,该函数返回具有func的,该func将返回给定命名空间的对象列表

这些pod对象将提供func所需的名称,名称空间是已知的,并且只是一种结构类型,您可以内联以在输出中显示事件

使用func将只列出一次的POD。如果您对定期更新此列表感兴趣,您可能希望查看反射器和告密者模式;这两个概念大部分都在包中实现,文档在本节中简要解释了这一概念


希望这能有所帮助。

谢谢你的指点,我会深入研究并尝试一下。我有工作要做时再报告。干杯谢谢你的指点,我会深入研究并尝试一下。我有工作要做时再报告。干杯
  GET https://xx.xx.xx.xx:6443/api/v1/namespaces/default/events?fieldSelector=involvedObject.uid%3Ddd77c4aa-28e6-4bf0-8dfe-0d8610cbe9c9%2CinvolvedObject.name%3Dmy-app%2CinvolvedObject.namespace%3Ddefault