服务账号令牌 Secret

类型为 kubernetes.io/service-account-token 的 Secret 用来存放标识某 服务账号的令牌。
使用这种 Secret 类型时,你需要确保对象的注解 kubernetes.io/service-account-name 被设置为某个已有的服务账号名称。 某个 Kubernetes 控制器会填写 Secret 的其它字段,例如 kubernetes.io/service-account.uid 注解以及 data 字段中的 token 键值,使之包含实际的令牌内容。

下面的配置实例声明了一个服务账号令牌 Secret:

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: secret-sa-sample
  5. annotations:
  6. kubernetes.io/service-account.name: "sa-name"
  7. type: kubernetes.io/service-account-token
  8. data:
  9. # 你可以像 Opaque Secret 一样在这里添加额外的键/值偶对
  10. extra: YmFyCg==

Kubernetes 在创建 Pod 时会自动创建一个服务账号 Secret 并自动修改你的 Pod 以使用该 Secret。该服务账号令牌 Secret 中包含了访问 Kubernetes API 所需要的凭据。

如果需要,可以禁止或者重载这种自动创建并使用 API 凭据的操作。 不过,如果你仅仅是希望能够安全地访问 API 服务器,这是建议的工作方式。