如何在 kubernetes 中创建服务帐户时禁用令牌秘密创建的创建?

时间:2020-12-21 13:49:32

标签: kubernetes

当我使用以下规范在 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

有没有办法在创建服务帐户时禁用自动创建秘密令牌?

1 个答案:

答案 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