You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何查看ServiceAccount时输出中未显示关联的Secret?

问题:ServiceAccount的SECRETS列显示为0,关联的Secret未被识别

我在minikube环境中创建了ServiceAccount、Secret、Role、RoleBinding,执行kubectl get sa查看时,test账号的SECRETS列显示为0。创建对象的命令如下:

  1. 创建ServiceAccount:
    kubectl create sa test
    
  2. 创建关联Secret:
    ➜  ~ kubectl apply -f - <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: test
      annotations:
        kubernetes.io/service-account.name: test
    type: kubernetes.io/service-account-token
    EOF
    

原因分析

  • Kubernetes v1.24及以后版本,默认不再为ServiceAccount自动生成关联的Secret;且手动创建的Secret仅通过kubernetes.io/service-account.name注解与ServiceAccount建立关联,但不会自动被添加到ServiceAccount对象的secrets数组中。
  • kubectl get sa输出的SECRETS列,统计的是ServiceAccount对象secrets字段里的条目数量,而非所有通过注解关联的Secret数量。执行kubectl get sa test -o yaml可验证,会发现secrets字段为空数组。

解决方式

如果需要让kubectl get sa的SECRETS列显示该Secret的数量,需手动将Secret添加到ServiceAccount的secrets数组中:

  1. 编辑ServiceAccount:
    kubectl edit sa test
    
  2. 在yaml配置中添加secrets字段(若已存在则追加条目):
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: test
    secrets:
    - name: test
    
  3. 保存退出后,再次执行kubectl get sa,test账号的SECRETS列会显示为1。

注意:即使SECRETS列显示为0,这个手动创建的Secret依然可以被test ServiceAccount正常使用,只是未被包含在ServiceAccount对象的引用列表中。

内容的提问来源于stack exchange,提问作者Jananath Banuka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:53:20