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

如何将手动创建的无过期ServiceAccount令牌挂载到Pod中

问题解答

一、将手动创建的ServiceAccount令牌挂载到Pod中

如果要挂载你手动创建的build-robot-secret,而非Kubernetes自动挂载的默认令牌,需要在Pod清单里通过volumes和volumeMounts显式配置:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx:alpine
    volumeMounts:
    - name: sa-token-volume
      mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      readOnly: true
  volumes:
  - name: sa-token-volume
    secret:
      secretName: build-robot-secret

说明:

  • 用volumes字段引用你手动创建的build-robot-secret
  • 通过volumeMounts将该Secret挂载到指定路径(示例用了默认令牌路径,也可自定义)
  • 这种配置会覆盖Kubernetes自动挂载的默认ServiceAccount令牌

二、关于令牌过期时间的说明

你遇到的是Kubernetes版本迭代后的默认行为:

  1. 自动挂载的令牌:从Kubernetes 1.21版本开始,默认启用ServiceAccountTokenVolumeProjection功能,自动挂载的是短期令牌,默认有效期1小时,Kubernetes会自动轮换令牌,因此你看到的令牌会有过期时间。这是为提升安全性,替代了旧版本中永不过期的长期令牌。
  2. 手动创建的令牌Secret:如果需要无过期时间的令牌,创建Secret时需添加kubernetes.io/service-account.token.expirationSeconds注解并设为"0"(表示永不过期),示例如下:
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: build-robot-secret
  annotations:
    kubernetes.io/service-account.name: build-robot
    kubernetes.io/service-account.token.expirationSeconds: "0"
type: kubernetes.io/service-account-token
EOF

注意:部分集群可能配置了强制的最大令牌有效期限制,此时设置"0"可能不生效,需联系集群管理员确认配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:56:01