首页 > 解决方案 > 有没有办法在一个 kubectl 命令中检查多个 pod

问题描述

有没有办法在一个命令中检查多个 pod,也许像

kubectl logs pods/pod1 pods/pod2 [container-name]

?

标签: kuberneteskubectl

解决方案


kubectl logs无法从名称指定的多个 pod 打印日志。

虽然,您可以使用该-l, --selector=''标志作为标签查询进行过滤。例如:

# Return snapshot logs from all containers in pods defined by label app=nginx
kubectl logs -lapp=nginx --all-containers=true

如果您需要从多个不同的 pod 打印日志,有一些项目可以提供帮助:

  • Kubetail:Bash 脚本,使您能够将来自多个 pod 的日志聚合(尾/跟踪)到一个流中。这与运行相同,kubectl logs -f但针对多个 pod。
  • Kubelogs:它是一个 bash 脚本,它使用您的 currentkubectl context交互地选择命名空间和多个 pod 以从中下载日志。它基本上kubectl logs在所有容器的循环中运行,将日志重定向到本地文件。

推荐阅读