概念
Kubernetes 中,Pod 内部进程想要访问 API Server,就需要用到 ServiceAccount。ServiceAccount 类似业务系统里的账户,用于为 Pod 提供身份。
默认情况下,应用程序将使用他们 namespace 中的 default 账号进行身份认证。例如,一个应用程序在 kube-ops 中运行,在没有任何显式配置的情况下,这个应用程序将会加载 default 这个账号。如果 default 账号不存在,则身份认证将会失败。
配置创建
在命名空间中创建 ServiceAccount 有两种方式,一种是通过 kubectl 在命令行中创建。另一种则是通过 yaml 文件进行声明,并通过 apply -f 的方式应用到 Pod 中。
例如,在 Prometheus 中,要请求 prometheus 访问权限,需要创建以下 SeriviceAccount:
|
|
配置引用
创建完 ServiceAccount 后,需要显示地通过 serviceAccountName 进行指定,否则 Kubernetes 会加载 default 账号。相关配置如下:
|
|