假设服务帐户的令牌是使用手动创建的
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: build-robot-secret
annotations:
kubernetes.io/service-account.name: build-robot
type: kubernetes.io/service-account-token
EOF
如何将创建的服务帐户令牌挂载到 Pod 中?我假设当 serviceAccountName: build-robot 是清单的一部分并且不应该过期时,创建的 pod 应该将此服务帐户令牌安装到 /var/run/secrets/kubernetes.io/serviceaccount 中令牌经过检查,有与其相关的到期时间。
Kubernetes 使用
TokenRequest
API 生成自动绑定到 SA 的令牌:https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/
Kubernetes 官方文档还说:
您仍然可以手动创建服务帐户令牌 Secret;例如,如果您需要一个永不过期的令牌。
这意味着创建未过期令牌的唯一方法是手动创建服务帐户的令牌 Secret。默认情况下,创建的机密(任何类型)没有过期详细信息。
使用
TokenRequest,
也可以通过 kubectl create token my_token --duration=0s
标志实现,但自 1.24 起已被删除。