如何通过corev1.PodLogOptions从所有容器获取日志?
我用它来检索一些吊舱日志。如果pod有一个容器,我可以检索日志如何通过corev1.PodLogOptions从所有容器获取日志?,go,kubernetes,Go,Kubernetes,我用它来检索一些吊舱日志。如果pod有一个容器,我可以检索日志 req:=client.CoreV1().Pods(“名称空间”).GetLogs(“mypod”),&CoreV1.PodLogOptions{}) 日志,错误:=req.Stream() [...] 这很有效,直到我遇到一个包含多个容器的pod,我得到以下错误 必须为pod xxx指定容器名称,请选择以下选项之一:[aaa] bbb]或其中一个初始化容器:[aaa bbb] 我希望在对象上找到一个可容纳的字段,但我只找到一个特
req:=client.CoreV1().Pods(“名称空间”).GetLogs(“mypod”),&CoreV1.PodLogOptions{})
日志,错误:=req.Stream()
[...]
这很有效,直到我遇到一个包含多个容器的pod,我得到以下错误
必须为pod xxx指定容器名称,请选择以下选项之一:[aaa]
bbb]或其中一个初始化容器:[aaa bbb]
我希望在对象上找到一个可容纳的字段,但我只找到一个特定的容器
字段
我正在搜索一个与REST客户端提供的——所有容器
等效的容器
$kubectl记录mypod--所有容器
这可能吗?有其他选择吗?如果您查看一下kubectl代码,它们只需在一个容器中获取所有相关的容器,然后对它们进行迭代,并逐个容器收集日志。所以我认为没有RESTAPI端点可以为您做到这一点
请看这里:您的问题非常专业,我不容易理解其中的片段,但策略始终是:如果您想模仿kubectl的行为,显然应该首先检查kubectl的来源。你可以从寻找你想要的模式开始,然后你必须检查补充包、测试等等。旅途愉快。根据我的经验,kubectl中的一些sugar操作之所以可能,并不是因为RESTAPI本机支持它们,而是因为有许多不同请求调度的迭代周期
希望有帮助 是的,这就是我最后所做的,只是在
Spec.Containers
上迭代。为我工作!谢谢