当我使用以下规范在 Kubernetes 中创建服务帐户时
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: deploy-bot
它会自动创建以下带有前缀 deploy-bot-token-XXXX
$ kubectl get secret
NAME TYPE DATA AGE
default-token-lvq79 kubernetes.io/service-account-token 3 60m
deploy-bot-token-7gmnh kubernetes.io/service-account-token 3 4m53s
有没有办法在创建服务帐户时禁用自动创建秘密令牌?
答案 0 :(得分:1)
您可以通过修改 kube-controller-manager
options 来实现。
要传递给控制器的标志是 --controllers=-serviceaccount-token
。它将禁止为服务帐户创建令牌。
spec:
containers:
- command:
- kube-controller-manager
- --controllers=-serviceaccount-token
[...]
在部署服务帐户时进行此修改后:
apiVersion: v1
kind: ServiceAccount
metadata:
name: deploy-bot
$ kubectl get sa
NAME SECRETS AGE
default 1 14m
deploy-bot 0 3s
并检查已创建的机密,您会注意到尚未创建机密:
$ kubectl get secret
NAME TYPE DATA AGE
default-token-t4qnv kubernetes.io/service-account-token 3 14m