在 github 操作中显示 initContainer 运行 的日志

Display logs of an initContainer running inside github actions

我有一个 pod,其中嵌入了一个名为 initdbinitContainer。是否有 kubectl 命令 returns true 如果 initdb 已启动或 false?我需要它在 Github 操作 CI 中显示 initdb 的日志(如果 initd 尚未启动,kubectl log <pod> -c initdb 会崩溃)。

如果你在 Pod 中只有一个初始化容器,你可以像下面这样:

k get pod pod-name --output="jsonpath={.status.initContainerStatuses[0].ready}"

如果初始化容器处于就绪状态,这将return为真,但这仅意味着初始化容器已准备就绪,它可能已经终止(因为它已完成执行)或仍然运行.我不完全确定,但如果初始容器已准备就绪,请求其日志应该可以正常工作)

您可以使用 jsonpath 来select Pods 定义的特定部分,完全用于自动执行某些检查的范围。

要查看 Pod 的完整定义,只需使用:

k get pod pod-name -oyaml

也许 select 您感兴趣的内容。如果你想等到 init 容器终止或启动,你可以检查它的 state 部分,它详细解释了当前状态,并且基本上对你期望看到的内容进行更精细的检查。