kubernetes 如果automountServiceAccountToken设置为false,pod的服务帐户有何用途?

lymgl2op  于 2023-01-20  发布在  Kubernetes
关注(0)|答案(1)|浏览(227)

服务帐户的API凭据通常在Pod中装载为:

/var/run/secrets/kubernetes.io/serviceaccount/token

此令牌允许pod中的容器化进程与API服务器通信。
如果将automountServiceAccountToken设置为false,则Pod的服务帐户(serviceAccountName)的用途是什么?

ruarlubt

ruarlubt1#

    • 一点理论**

让我们从应该创建pod时发生的情况开始。
创建Pod时,如果未指定服务帐户,则会自动为其分配同一命名空间中的默认服务帐户
参考。
因此,所有pod均链接到服务帐户(默认或在spec中指定)。
然后,始终为每个服务帐户生成API访问令牌。
automountServiceAccountToken标志定义此令牌在创建后是否将自动安装到pod。
有两个选项可用于设置此标志:

  • 在特定服务帐户中
apiVersion: v1
kind: ServiceAccount
metadata:
  name: build-robot
automountServiceAccountToken: false
...
  • 在特定Pod中
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  serviceAccountName: build-robot
  automountServiceAccountToken: false
  ...
    • 答案:**

如果automountServiceAccountToken设置为false,pod的服务帐户(serviceAccountName)的用途是什么?
根据创建pod所涉及的流程,这可能会造成不同。GitHub issue的注解中有一个很好的例子(这个标记最终来自哪里):
仍然存在创建令牌(用于外部系统)或将服务帐户与pod关联(用于映像拉入机密)的用例,但能够选择退出API令牌自动装载(对于特定pod或特定服务帐户)是有用的。

相关问题