首页 > 解决方案 > 如何在 pod spec yaml 文件中获取 Pod 创建时间

问题描述

是否可以使用向下 API 或 pod 规范中的任何其他方式获取时间戳

在这里检查https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/#capabilities-of-the-downward-api,但找不到时间戳。

下面是来自 yaml 的示例部分,我想在其中生成带有时间戳的输出文件。

          args:
            - "audit"
            - "--config"
            - "/opt/app/app-config/app.yaml"
            - "--format"
            - "json"
            - "--output-file"
            - "/var/log/app/app-$(date +%s).log"

类似的问题:

标签: kuberneteskubernetes-pod

解决方案


正如@David Maze 的评论中提到的那样

您可以将其包装在 sh -c 调用中,以使 shell 进行子进程扩展。


这里的其他方法是使用kubectl set

您可以使用

kubectl set env deployment/deployment-name TIMESTAMP=$(kubectl get pod pod-name -o jsonpath='{.metadata.creationTimestamp}')

这会将 creationTimestamp 值设置为具有 TIMESTAMP 名称的环境变量。

您可以检查结果kubectl describe pod pod-name并搜索环境。


此外,您可以使用

kubectl -n namespace get pod pod_name -o jsonpath="{range .status.conditions[*]}{.type}{','}{.lastTransitionTime}{'\n'}{end}"

获取带有时间戳的 pod 的所有事件


推荐阅读