如何在 kube api 中获取秘密的最后应用时间戳

Wes*_*101 5 kubernetes kube-apiserver

我想获取最后一次通过 kube api 修改秘密的时间。我似乎无法找到访问此信息的方法。我查看了事件,但找不到任何有关秘密的信息。

一个例子是我创建一个名为 my-secret 的秘密,然后我在第二天更新它,但我想知道它的更新时间而不是创建时间。

任何帮助将非常感谢。

goh*_*m'c 9

以下命令将为您提供秘密的时间历史记录:

kubectl get secret <name> --namespace <namespace> --show-managed-fields -o jsonpath='{range .metadata.managedFields[*]}{.manager}{" did "}{.operation}{" at "}{.time}{"\n"}{end}'

例如,创建一个秘密: kubectl create secret generic test --from-literal user=$(echo 'somebody' | base64)

运行上面的命令:

kubectl-create 于2021-12-06T01:12:17Z更新

取回创建的秘密 kubectl get secret test -o yaml > test.yaml。将 yaml 中“user”的值替换为echo 'nobody' | base64输出并重新应用kubectl apply -f test.yaml

运行上面的命令,它会报告上次更新操作和时间戳:

kubectl-create 于2021-12-06T01:12:17Z更新

kubectl-client-side-apply 于2021-12-06T01:13:33Z更新

现在进行替换kubectl patch secret test --type='json' -p='[{"op" : "replace" ,"path" : "/data/user" ,"value" : "aGVsbG93b3JsZAo="}]'

再次运行上面的命令:

kubectl-create 于2021-12-06T01:12:17Z更新

kubectl-client-side-apply 于2021-12-06T01:13:33Z更新

kubectl-patch 于2021-12-06T01:21:57Z更新

该命令正确报告对机密所做的所有更改。