Kubernetes 我可以使用什么kubectl命令按特定字段对事件进行排序,并仅打印事件的特定细节?

Kubernetes 我可以使用什么kubectl命令按特定字段对事件进行排序,并仅打印事件的特定细节?,kubernetes,kubectl,go-templates,Kubernetes,Kubectl,Go Templates,我只需要打印Kubernetes事件的特定字段,按特定字段排序 这是为了帮助我收集有关我的命名空间的遥测和分析 我怎么能这么做 下面的命令将执行此操作 它打印按创建时间戳排序的事件 它还使用go模板过滤出kubernetes事件对象的特定字段 kubectl get events --sort-by='.metadata.creationTimestamp' -o 'go-template={{range .items}}{{.involvedObject.name}}{{"\t"}}{{.

我只需要打印Kubernetes事件的特定字段,按特定字段排序

这是为了帮助我收集有关我的命名空间的遥测和分析

我怎么能这么做

下面的命令将执行此操作

它打印按创建时间戳排序的事件

它还使用
go模板
过滤出
kubernetes事件
对象的特定字段

kubectl get events  --sort-by='.metadata.creationTimestamp'  -o 'go-template={{range .items}}{{.involvedObject.name}}{{"\t"}}{{.involvedObject.kind}}{{"\t"}}{{.message}}{{"\t"}}{{.reason}}{{"\t"}}{{.type}}{{"\t"}}{{.firstTimestamp}}{{"\n"}}{{end}}'

如果您不介意将输出视为JSON:

kubectl get event -o json | jq '.items |= sort_by(.lastTimestamp)'

这需要jq。

kubectl get events--sort by='.lastTimestamp'下面是我使用的Bash函数:

函数kubectl事件{
{
echo$'TIME\tNAMESPACE\tTYPE\tREASON\tOBJECT\tSOURCE\tMESSAGE';
kubectl获取事件-o json“$@”\
|jq-r'.items | map(+t:(.eventTime/.lastTimestamp)}排序依据(.t)[].[.t、.metadata.namespace、.type、.reason、.involvedObject.kind+“/”+.involvedObject.name、.source.component+”、“+(.source.host/“-”)、.message]|@tsv';
} \
|列-s$'\t'-t\
|less-S
}

您可以像这样使用它:
kubectl事件-A
kubectl事件-n foo
,等等。

我使用以下命令在时间戳之后对其进行排序

kubectl get event --all-namespaces --sort-by='.metadata.managedFields[0].time'

为了过滤出信息,您当然可以将其与@suryakrupa描述的go模板或@Chris Stryczynski描述的jq组合起来。如果出现错误,请尝试使用此
kubectl get events--sort by=.metadata.creationTimestamp
。但是“oc”指的是什么?哈哈,好问题
oc
是OpenShift客户端,它基本上是对OpenShfit特性的额外支持。我太习惯于打字了,以至于忘了编辑我的答案,让它改用
kubectl