使用 kubectl 为特定短语 grep 多个 pod/service 日志
Using kubectl to grep multiple pod/service logs for a specific phrase
我有一堆服务部署到 Kubernetes 集群(各种 pods 和服务都在网关后面进行负载平衡)。我正在对其中之一进行 REST 调用并收到意外错误,但问题是我实际上不确定 which pod/service 实际上抛出错误。我想检查每个 pod/service.
的所有日志
当我 运行 kubectl get namespace
我得到:
NAME STATUS AGE
another-app Active 22d
myapp Active 22d
myapp-database Active 22d
default Active 22d
kube-public Active 22d
kube-system Active 22d
zanzabar Active 22d
是否有 kubectl log
命令可以扫描整个集群的日志并在其中搜索特定的错误消息?例如,假设我从 REST (curl
) 返回的错误消息是“抱歉,马里奥,你的公主在另一座城堡里”。有什么方法可以使用 kubectl log
扫描该短语的所有 pod/service 日志并将结果显示给我吗?如果没有,那么 best/easiest 的方法是什么 使用 kubectl
找到带有错误消息的 pod/service(希望我的错误背后有更多详细信息) ?
您可以获取特定 pod 或容器的日志(对容器使用 -c 标志)并通过使用 grep 命令对日志命令进行流水线化来获取错误日志。
例如,如果我想获取名为 my-pod 的 pod 的日志,并想 grep“存在错误”这个词,那么命令如下:
kubectl logs my-pod | grep “error exist”
有关 grep 用法的更多信息,请参阅此 document for multiple ways of fetching logs and this 。
我有一堆服务部署到 Kubernetes 集群(各种 pods 和服务都在网关后面进行负载平衡)。我正在对其中之一进行 REST 调用并收到意外错误,但问题是我实际上不确定 which pod/service 实际上抛出错误。我想检查每个 pod/service.
的所有日志当我 运行 kubectl get namespace
我得到:
NAME STATUS AGE
another-app Active 22d
myapp Active 22d
myapp-database Active 22d
default Active 22d
kube-public Active 22d
kube-system Active 22d
zanzabar Active 22d
是否有 kubectl log
命令可以扫描整个集群的日志并在其中搜索特定的错误消息?例如,假设我从 REST (curl
) 返回的错误消息是“抱歉,马里奥,你的公主在另一座城堡里”。有什么方法可以使用 kubectl log
扫描该短语的所有 pod/service 日志并将结果显示给我吗?如果没有,那么 best/easiest 的方法是什么 使用 kubectl
找到带有错误消息的 pod/service(希望我的错误背后有更多详细信息) ?
您可以获取特定 pod 或容器的日志(对容器使用 -c 标志)并通过使用 grep 命令对日志命令进行流水线化来获取错误日志。
例如,如果我想获取名为 my-pod 的 pod 的日志,并想 grep“存在错误”这个词,那么命令如下:
kubectl logs my-pod | grep “error exist”
有关 grep 用法的更多信息,请参阅此 document for multiple ways of fetching logs and this