如何查询Kubernetes已部署Deployment的创建用户及使用的认证类型
Kubernetes查询Deployment创建用户及认证类型的方案
核心原因说明
Kubernetes原生资源对象默认不会将创建主体身份、请求使用的认证类型持久化存储在资源自身的元数据字段中,kubectl describe仅能展示资源的运行配置、属主关系、事件关联等内置字段,因此无法直接查到目标信息。
可尝试的排查路径
- 优先申请集群审计日志查询权限
审计日志是追溯资源创建行为最准确的数据源,你可以筛选满足以下条件的审计条目:请求动作verb=create、资源类型resource=deployments、资源名称resource.name=my-workermole。条目中的user.username字段对应创建者身份,annotations.authentication.kubernetes.io/credential-type等关联字段可以确认具体认证类型(token、客户端证书、basic auth等)。 - 检查Deployment的全量元数据
大部分企业内部的CD发布系统会自定义注入发布者、认证类型到资源的标签或注解中,执行以下命令查看全量配置:
重点排查kubectl get deployment my-workermole -o yamlmetadata.annotations下是否存在created-by、release/operator、auth-type这类自定义字段。 - 查看关联事件
如果集群的Event保留时长覆盖Deployment的创建时间,可以执行以下命令查询关联事件,部分事件会记录触发资源创建的主体信息:kubectl get event -n <Deployment所在命名空间> --field-selector involvedObject.name=my-workermole,involvedObject.kind=Deployment
无管理权限的限制说明
如果你无法申请审计日志权限,且元数据、事件中都没有对应信息,没有其他合法路径可以查询到目标信息,只能联系集群管理员协助排查。
内容的提问来源于stack exchange,提问作者Eduard Florinescu
相关产品推荐
相关产品推荐

