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

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

如何通過 corev1.PodLogOptions 從所有容器中獲取日志?

如何通過 corev1.PodLogOptions 從所有容器中獲取日志?

Go
元芳怎么了 2022-06-01 18:05:20
我正在使用kubernetes/client-go來檢索一些 pod 日志。如果 pod 有一個容器,我可以檢索日志req := client.CoreV1().Pods("namespace").GetLogs("mypod", &corev1.PodLogOptions{})logs, err := req.Stream()[...]這很好用,直到我遇到一個包含多個容器的 pod,我收到以下錯誤必須為 pod xxx 指定容器名稱,選擇以下之一:[aaa bbb] 或 init 容器之一:[aaa bbb]我希望在corev1.PodLogOptions對象上找到一個可容納的字段,但我只找到一個特定的Container字段。我正在尋找--all-containersREST 客戶端提供的等價物。$ kubectl logs mypod --all-containers這可能嗎?有什么選擇嗎?
查看完整描述

2 回答

?
倚天杖

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

如果您查看kubectl代碼,它們只會在一個 pod 中獲取所有相關容器,然后遍歷它們并逐個容器收集日志容器。所以我認為沒有 REST API 端點可以為您做到這一點。

見這里:https ://github.com/kubernetes/kubectl/blob/19fd05792d8c806a5024d6bbbdd7d66d3234cbcb/pkg/polymorphichelpers/logsforobject.go#L86


查看完整回答
反對 回復 2022-06-01
?
MM們

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

您的問題非常專業,對我來說不容易在腦海中留下片段,但策略始終如下:如果您想模仿 kubectl 的行為,您顯然應該首先檢查 kubectl 的來源。您可以從這里開始尋找您想要的模式,然后您必須檢查補充包、測試等。旅途愉快。以我的經驗,kubectl 中的一些糖操作是可能的,不是因為它們被 REST API 原生支持,而是因為迭代周期與許多不同的請求的分派。



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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