[英]In kubernetes how can I tail the logs of future Job pods?
我有一个创建 pod 的作业,我可以像这样跟踪它的日志:
kubectl logs job/migration --follow
但是,由于它是一个作业,因此 pod 应该会运行、完成然后终止。 如果我运行上面的命令,我可以看到最后一次运行 pod 的日志,但是kubectl
在打印出所有日志后退出,大概是因为它试图跟随的所有 pod 都被终止了。
我的工作上有这个注释:
annotations:
helm.sh/hook: post-install,post-upgrade
这样当我运行helm install...
时,它将导致 Job 创建另一个 pod,该 pod 再次按预期运行和终止。
我的问题是,是否可以构建一个kubctl logs...
命令以便我可以跟踪未来迁移 pod 的日志? 这样我就可以在一个终端中执行命令,然后在另一个终端中运行helm install
,然后我会立即在终端中看到新 pod 的日志?
我认为解决方案是使用xargs
。
为此,我们需要添加-o name
以仅获取现有 pod 和新 pod 的名称,然后将 pipe 添加到 xargs 中,并在它们发生时跟踪它们的日志。
kubectl get pods -n example -l component=migration --watch -o name \
| xargs kubectl logs -n example --follow
欢迎细化。
您也可以使用stern 。
stern --namespace example migration
或stern --namespace -l component=migration
将显示所有当前和未来名称中包含“migration”一词的 Pod 的所有日志。 label。
该工具打印出所有 pod/容器的所有日志,与(部分)名称匹配,因此您也可以使用stern --namespace example mig
。 您还可以包含/排除某些容器,针对所有命名空间运行并获得非常好的着色模式来区分不同的 pod/容器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.