使用 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 kafka
对于使用 bitnami/kafka 部署的 kafka pod,我从 /opt/bitnami/kafka/logs/server.log
获取日志。我想模仿这种行为。
kubectl logs
命令从 stdout
和 stderr
获取所有内容,因此您需要在那里提供日志。
容器化应用程序将日志写入 stdout
和 stderr
是一种常见的做法。
这种方式主要有两种选择:
调整应用程序,使其将日志也写入 stdout
和文件。
例如。使用 shell 可以用 tee
命令完成。
请查找带有命令说明的 good answers。
使用一个 sidecar 容器,它将从文件中获取日志并将它们转换成它自己的 stdout
。
请找到 Using a sidecar container with the logging agent
关于 kubernetes 日志记录(包括容器)的有用link:
我有一个应用程序将日志存储在文件中的可配置位置。
假设 /abc/pqr/application.log
应用程序正在迁移到 Kubernetes,它将 运行 放在一个 pod 中。如果我 运行 kubectl log <pod-name>
,我会得到打印在 stdout
上的任何内容,我可以将其重定向到一个文件。我想反其道而行之,我在上面的位置有一个包含日志的文件,我希望 kubectl logs <pod-name>
从该文件打印日志。
例如,如果 运行 kubectl logs kafka
对于使用 bitnami/kafka 部署的 kafka pod,我从 /opt/bitnami/kafka/logs/server.log
获取日志。我想模仿这种行为。
kubectl logs
命令从 stdout
和 stderr
获取所有内容,因此您需要在那里提供日志。
容器化应用程序将日志写入 stdout
和 stderr
是一种常见的做法。
这种方式主要有两种选择:
调整应用程序,使其将日志也写入
stdout
和文件。 例如。使用 shell 可以用tee
命令完成。请查找带有命令说明的 good answers。
使用一个 sidecar 容器,它将从文件中获取日志并将它们转换成它自己的
stdout
。 请找到 Using a sidecar container with the logging agent
关于 kubernetes 日志记录(包括容器)的有用link: