簡體   English   中英

使用 kubectl log 命令從 Kubernetes 集群中容器內的特定文件獲取日志

[英]Get logs from a specific file within container in Kubernetes cluster using kubectl log command

我有一個應用程序,它將日志存儲在一個可配置位置的文件中。 假設/abc/pqr/application.log

應用程序正在遷移到 Kubernetes,它將在單個 Pod 中運行。 如果我運行kubectl log <pod-name> ,我會得到打印在stdout上的任何內容,我可以將其重定向到一個文件。 我想kubectl logs <pod-name>做,我在上述位置有一個包含日志的文件,我希望kubectl logs <pod-name>從該文件打印日志。

例如,如果為使用bitnami/kafka部署的 kafka pod 運行kubectl logs kafka kafka ,我會從/opt/bitnami/kafka/logs/server.log獲取日志。 我想模仿這種行為。

kubectl logs命令從stdoutstderr獲取所有內容,因此您需要在那里提供日志。

當容器化應用程序將其日志寫入stdoutstderr時,這是一種常見做法。

這種方式有兩個主要選擇:

  1. 調整應用程序,使其也將日志寫入stdout和文件。 例如,使用 shell 可以通過tee命令來完成。

    請找到帶有命令描述的好答案

  2. 使用 sidecar 容器,它將從文件中獲取日志並將它們轉換為自己的stdout 請找到使用帶有日志代理的 sidecar 容器

有關 kubernetes 日志記錄(包括容器)的有用鏈接:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM