如果 automountServiceAccountToken 设置为 false,那么 pod 的服务帐户有什么用?
What's the purpose of a pod's service account, if automountServiceAccountToken is set to false?
服务帐户的 API 凭据通常安装在 pods 中,如下所示:
/var/run/secrets/kubernetes.io/serviceaccount/token
此令牌允许 pod 中的容器化进程与 API 服务器通信。
如果 automountServiceAccountToken
设置为 false
,Pod 的服务帐户 (serviceAccountName
) 的用途是什么?
一点理论:
让我们从应该创建 pod 时发生的事情开始。
When you create a pod, if you do not specify a service account, it is
automatically assigned the default service account in the same
namespace
所以所有 pods 无论如何都链接到服务帐户(默认或在 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
...
答案:
What's the purpose of a pod's service account (serviceAccountName), if
automountServiceAccountToken is set to false?
这可能会有所不同,具体取决于 pod 创建中涉及的进程。很好的例子是 comments in GitHub issue(这个标志最终来自哪里):
There are use cases for still creating a token (for use with external
systems) or still associating a service account with a pod (for use
with image pull secrets), but being able to opt out of API token
automount (either for a particular pod, or for a particular service
account) is useful.
服务帐户的 API 凭据通常安装在 pods 中,如下所示:
/var/run/secrets/kubernetes.io/serviceaccount/token
此令牌允许 pod 中的容器化进程与 API 服务器通信。
如果 automountServiceAccountToken
设置为 false
,Pod 的服务帐户 (serviceAccountName
) 的用途是什么?
一点理论:
让我们从应该创建 pod 时发生的事情开始。
When you create a pod, if you do not specify a service account, it is automatically assigned the default service account in the same namespace
所以所有 pods 无论如何都链接到服务帐户(默认或在 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 ...
答案:
What's the purpose of a pod's service account (serviceAccountName), if automountServiceAccountToken is set to false?
这可能会有所不同,具体取决于 pod 创建中涉及的进程。很好的例子是 comments in GitHub issue(这个标志最终来自哪里):
There are use cases for still creating a token (for use with external systems) or still associating a service account with a pod (for use with image pull secrets), but being able to opt out of API token automount (either for a particular pod, or for a particular service account) is useful.