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

如何在Kubernetes中创建ServiceAccount并关联Token?默认无Token问题求助

Kubernetes ServiceAccount创建后未显示默认关联Secret Token的问题

操作步骤回顾

  • 在AWS EC2命令行执行以下命令生成ServiceAccount配置文件:
    kubectl create serviceaccount jenkins --dry-run=client -o yaml > jenkins-sa.yaml
    
  • 本地kube/config文件路径为/home/ec2-user
  • 执行kubectl apply -f jenkins-sa.yaml应用配置
  • 执行kubectl describe serviceaccount jenkins查看信息时,未看到默认应关联的Secret Token(截图显示输出中无Tokens相关条目)

问题原因

从Kubernetes 1.24版本开始,默认不再自动为ServiceAccount创建并关联Secret Token,这是官方的默认行为变更——之前的K8s版本会自动生成关联的Token Secret,1.24及以上版本需要手动创建Token或使用TokenRequest API来获取。

解决办法

1. 生成临时Token(推荐,安全)

执行以下命令直接生成临时Bearer Token,默认有效期1小时,可通过--duration指定更长有效期:

# 生成默认1小时有效期的Token
kubectl create token jenkins

# 生成有效期30天的Token
kubectl create token jenkins --duration=720h

2. 创建长期Token Secret(不推荐,存在安全风险)

创建jenkins-sa-token.yaml文件,内容如下:

apiVersion: v1
kind: Secret
metadata:
  name: jenkins-sa-token
  annotations:
    kubernetes.io/service-account.name: jenkins
type: kubernetes.io/service-account-token

执行命令应用配置:

kubectl apply -f jenkins-sa-token.yaml

之后再执行kubectl describe serviceaccount jenkins,就能看到关联的Token条目了。

3. 检查ServiceAccount配置

确认ServiceAccount未禁用自动挂载Token:

kubectl get serviceaccount jenkins -o yaml

如果输出中存在automountServiceAccountToken: false,需要删除该配置后重新apply,否则即使创建了Token也不会自动挂载。


内容的提问来源于stack exchange,提问作者Emmanuel Spencer Egbuniwe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:45:38