【问题标题】:Getting all pods for a container, storing them in text files and then using those files as args in single command获取容器的所有 pod,将它们存储在文本文件中,然后在单个命令中将这些文件用作 args
【发布时间】:2021-12-12 00:53:40
【问题描述】:

上图显示了我需要保存到一个文本文件(或多个文本文件)的所有 kubernetes pod 的列表。

我需要一个命令:

  1. 将多个 pod 日志存储到文本文件(或单个文本文件中)- 到目前为止,我有这个命令将一个 pod 存储到一个文本文件中,但这还不够,因为我必须为每个 pod 单独拼出每个 pod 名称吊舱:

    $ kubectl logs ipt-prodcat-db-kp-kkng2 -n ho-it-sst4-i-ie-enf > latest.txt

  2. 然后我需要命令将这些文件发送到 python 脚本中,它将在其中检查各种字符串 - 到目前为止,这是可行的,但如果这可以包含在上述命令中,那将非常有用:

    python CheckLogs.py latest.txt latest2.txt

是否可以在单个命令中执行 (1) 或同时执行 (1) 和 (2)?

【问题讨论】:

    标签: python kubernetes command-line kubectl


    【解决方案1】:

    最简单的解决方案是创建一个完全符合您要求的 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

    【讨论】:

    • 您好阿隆索,非常感谢您。我以前从未使用过脚本,但尝试过上述方法。当我运行脚本时,由于其中没有环境的命名空间而出现错误 - 你知道环境的命名空间(在我的例子中是它的 ho-it-dev3-i-ie-enf)应该去哪里吗?我试过:for p in $(kubectl get pods ho-it-dev3-i-ie-enf -o jsonpath="{.items[*].metadata.name}"); do kubectl logs $p 来自服务器的错误(禁止):pod“ho-it-dev3-i-ie-enf”被禁止:用户“marcus.watts@accenture.com”无法在 API 组“”中获取资源“pods”在命名空间“默认”
    • 要从特定命名空间获取 pod,必须使用for p in $ (kubectl get pods -n your-namespace -o jsonpath = "{.items [*].metadata.name}")
    【解决方案2】:

    这里有多种工具可以提供帮助。其中一些是常用的,其中一些是我为其创建自己的脚本的快捷方式。

    • xargs:用于根据输入以各种组合运行多个命令行。例如,如果您通过管道传输包含三行的文本输出,您可能会使用这三行的内容执行三个命令。有很多可能的变化

    • arg1:这是我写的一个快捷方式,它只接受标准输入并产生第一个参数。最简单的形式就是“awk '{print $1}'”,但我将我的设计为采用可选参数,例如,覆盖参数编号、分隔符并采用文件名。我经常使用“-i{}”为值指定替换标记。

    • skipfirstline:我写的另一个快捷方式,它只需要一些多行文本输入并省略第一行。它只是“sed -n '1!p'”。

    • head/tail:这些打印一些标准输入的第一行或最后一行。有趣的形式采用负数。阅读手册页并进行实验。

    • sed:通常是我管道的一部分,用于对文本进行内联替换。

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多