如何获取在kubernetes中提交作业的用户名?

How to get the username that submitted a job in kubernetes?

有没有办法找到在 kubernetes 中提交工作的用户名?

我试过 kubectl describe jobs JOBNAMEkubectl get jobs JOBNAME,但都没有显示提交作业的用户名。

令人惊讶的是,我没有通过 google 或 SO 搜索找到这个问题的答案。

在 kubernetes 中创建对象时,例如 Job,它由 API 服务器处理。 尽管访问通常只允许使用身份验证,但情况并非必须如此。即使使用了身份验证,也不意味着用户名之类的东西可用。 (想想 TLS 客户端证书) 除了 Job 可以是另一个 kubernetes 对象的结果,例如 CronJob,那么没有用户创建该对象,而是 kubernetes 本身。

您可以使用 YAML 输出获取对象数据的完整转储,例如 kubectl get job sample -o yaml,没有记录用户名。

不过,您可以使用元数据(标签或注释)自己记录用户名。

如果您的案例必须找到“谁发起了这项工作”,那么您可以设置 api 服务器审核 - [https://kubernetes.io/docs/tasks/debug-application-cluster/audit/][1]