【发布时间】:2022-01-13 19:57:50
【问题描述】:
在 Kubernetes CustomResourceDefinitions (CRD) 中,我们可以指定 additionalPrinterColumns,它(例如)用于带有 CRD 的 kubectl get。列的值通常使用jsonPath 从 CRD 的状态中提取。从Kubernetes docs,我们还可以看到时间戳以用户友好的方式呈现(例如,5m 或 2h,表示从这个时间戳到现在的持续时间):
additionalPrinterColumns:
- name: Duration
type: date
jsonPath: .status.completitionTimestamp
Kubernetes Job 资源是一个资源的例子,它不仅显示它何时存在,还显示for long it was running:
NAME COMPLETIONS DURATION AGE
hello-4111706356 0/1 0s
hello-4111706356 0/1 0s 0s
hello-4111706356 1/1 5s 5s
我正在寻找为我的 CRD 构建类似的东西,即:以相同的方式显示两个时间戳之间的持续时间。更具体地说,我想获得由 Kubernetes 评估和格式化的两个状态字段之间的持续时间,例如 .status.startTimestamp 和 .status.completitionTimestamp。
正如在 Job 资源中所做的完全相同的事情一样,我想知道这是否可能,或者这是否是 kubectl 中内置的特殊行为?
【问题讨论】:
-
所以现在我只能部分回答:这是
kubectl行为。您可以通过kubectl proxy --port=8080 &查看,然后直接curl localhost:8080/apis/batch/v1/namespaces/default/jobs/pi获取工作详情。您提到的两个领域都有。我将尝试找到更多详细信息,它究竟是如何发生的。顺便问一下,你要使用哪个版本的kubectl? -
@SörenHenning。所以我对第一条评论有误,请在下面找到答案。
标签: kubernetes kubectl kubernetes-custom-resources