是否可以獲取特定時間范圍內的 Kubernetes 日志?
我現在能做的就是使用kubectl logs > dump.logcmd為單個 pod 轉儲大約最后一小時的日志。
但是出于除錯的原因,需要獲取上周的日志。我在 Kubernetes 日志中找不到任何執行此操作的功能。
唯一的想法是為日志收集附加一些外部服務,如 Kibana,但也許內置的 Kubernetes 補救措施允許這樣做?
謝謝你。
uj5u.com熱心網友回復:
...the last-hour log for the single pod
要檢索最近 1 小時的日志,您可以執行此操作kubectl logs <pod> --since=1h。從 kubectl help 斷言更多選項:
--since=0s:僅回傳比相對持續時間(如 5s、2m 或 3h)更新的日志。默認為所有日志。只能使用since-time / since 之一。
--since-time='':僅在特定日期(RFC3339)之后回傳日志。默認為所有日志。只能使用since-time / since 之一。
--tail=-1:要顯示的最近日志檔案的行。默認為 -1,沒有選擇器,如果提供了選擇器,則顯示所有日志行,否則為 10。
uj5u.com熱心網友回復:
是否可以獲取特定時間范圍內的 Kubernetes 日志?
是的,這是可能的,而且有很多不同的方式。
唯一的想法是為日志收集附加一些外部服務,如 Kibana,但也許內置的 Kubernetes 補救措施允許這樣做?
兩者都是可能的。但是,這一切都取決于具體情況,哪個會更好。Chris Doyle在他的評論中說得很好:
這將取決于您在集群中的日志保留和滾動策略,通常您需要考慮節點空間,尤其是當節點運行多個 pod 等時。一般來說,我的首選策略是在節點端保留較短的保留期和像您提到的 elk、splunk、datadog、loki等,推送注銷到集中式解決方案
當然,內置的 k8s 工具也將能夠為您提供幫助。您必須使用kubectl logs帶有正確標志的命令。您可以閱讀手冊中的所有選項:
這可能是最有趣的部分:
--since=0:僅回傳比相對持續時間(如 5s、2m 或 3h)更新的日志。默認為所有日志。只能使用since-time / since 之一。--since-time="":僅在特定日期 ( RFC3339 )之后回傳日志。默認為所有日志。只能使用since-time / since 之一。
要顯示上周的 pod 日志,您可以運行以下命令:
kubectl logs -n <pod_namespace (optional)> <pod name> --since 168h
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395398.html
標籤:约会时间 Kubernetes 日志记录 倾倒
