使用Kuectl API,从pod中读取容器开始时间



为了知道容器的启动时间,我们通常使用以下内容来描述pod:CCD_ 1。我需要通过kubectl api以时间戳或任何格式访问容器的开始时间。API中是否存在这种情况?

实际上,您可以通过状态和状态转换来获取它。有了kubectl,它看起来是这样的:

kubectl获取pod$PODNAME-o jsonpath="{.status.coconditions[?(@.type=="Ready"(].lastTransitionTime}">

现在会为我生成2021-05-25T15:57:03Z

您可以授予pod API访问权限,但这将是棘手的(没有简单的策略方法可以说"只访问自己"(。有向下API音量系统,但我认为它不包括这个领域?

我已经编写了一个shell-script来解决这个问题,它通过kube API跟踪pod内部的pod信息,并为所需的lastTransitionTime参数解析相同的信息:

APISERVER=https://kubernetes.default.svc.cluster.local
SERVICEACCOUNT=/var/run/secrets/kubernetes.io/serviceaccount
NAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)
TOKEN=$(cat ${SERVICEACCOUNT}/token)
curl -ik -H "Authorization: Bearer ${TOKEN}" ${APISERVER}/api/v1/namespaces/${NAMESPACE}/pods | grep "lastTransitionTime:*[T]*:*:*" | tail -1  

这个脚本为我输出pod(tail -1(的最后一次重新启动时间。

最新更新