python - 获取容器的所有 pod,将它们存储在文本文件中,然后在单个命令中将这些文件用作 args
问题描述
上图显示了我需要保存到一个文本文件(或多个文本文件)的所有 kubernetes pod 的列表。
我需要一个命令:
将多个 pod 日志存储到文本文件(或单个文本文件)中 - 到目前为止,我有这个命令将一个 pod 存储到一个文本文件中,但这还不够,因为我必须为每个 pod 单独拼出每个 pod 名称:
$ kubectl 日志 ipt-prodcat-db-kp-kkng2 -n ho-it-sst4-i-ie-enf > latest.txt
然后我需要命令将这些文件发送到一个 python 脚本中,它将在其中检查各种字符串 - 到目前为止,这是可行的,但如果这可以包含在上述命令中,那么这将非常有用:
python CheckLogs.py latest.txt latest2.txt
是否可以在单个命令中执行 (1) 或同时执行 (1) 和 (2)?
解决方案
最简单的解决方案是创建一个完全符合您要求的 shell 脚本:
#!/bin/sh
FILE="text1.txt"
for p in $(kubectl get pods -o jsonpath="{.items[*].metadata.name}"); do
kubectl logs $p >> $FILE
done
使用此脚本,您将在 FILE 中获取命名空间中所有 pod 的日志。您甚至可以添加python CheckLogs.py latest.txt
推荐阅读
- c++ - 复制初始化是否与副本的复制初始化相同?
- java - java.lang.IllegalStateException:事务在 session.beginTransaction() 处已处于活动状态
- c# - 如何在 Azure 服务总线命名空间中创建主题、订阅和 SAS 策略?
- java - 自定义警报对话框不会关闭
- javascript - 点击事件在 ionic 4 项目中不起作用
- .htaccess - htaccess 外部和内部重定向
- c# - 从 C# 调用 terraform plan/apply
- javascript - 仅在活动组件中打开的垫子对话框
- firebase - 如何在 Firebase.com 上报告网络钓鱼
- database - 如何在 PostgreSQL 中处理大型数据集?