12.2. 使用卷投射配置绑定服务帐户令牌


您可以使用卷投射,将 pod 配置为请求绑定的服务帐户令牌。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 您已创建了一个服务帐户。这里假定服务帐户命名为 build-robot

流程

  1. 另外,还可选择设置服务帐户问题的签发者。

    如果绑定令牌仅在集群中使用,则通常不需要这一步。

    1. 编辑 cluster Authentication 对象:

      $ oc edit authentications cluster
    2. spec.serviceAccountIssuer 字段设置为所需的服务帐户签发者:

      spec:
        serviceAccountIssuer: https://test.default.svc 1
      1
      这个值应该是 URL,通过这个 URL,绑定令牌的接收方可以从中查找验证令牌签名所需的公钥。默认为 https://kubernetes.default.svc
  2. 使用卷投影将 pod 配置为使用绑定服务帐户令牌。

    1. 创建名为 pod-projected-svc-token.yaml 的文件,其内容如下:

      apiVersion: v1
      kind: Pod
      metadata:
        name: nginx
      spec:
        containers:
        - image: nginx
          name: nginx
          volumeMounts:
          - mountPath: /var/run/secrets/tokens
            name: vault-token
        serviceAccountName: build-robot 1
        volumes:
        - name: vault-token
          projected:
            sources:
            - serviceAccountToken:
                path: vault-token 2
                expirationSeconds: 7200 3
                audience: vault 4
      1
      对现有服务帐户的引用。
      2
      相对于文件挂载点的相对路径,用于将令牌放入。
      3
      (可选)设置服务帐户令牌的到期时间(以秒为单位)。默认为 3600 秒(1 小时),且必须至少为 600 秒(10 分钟)。如果令牌使用的时间超过这个值的 80%,或者超过 24 小时,则 kubelet 会开始尝试轮转令牌。
      4
      (可选)设置令牌的预期使用者。令牌的接收者应验证接收者身份是否与令牌的使用声明匹配,否则应拒绝令牌。使用者默认为 API 服务器的标识符。
    2. 创建 pod:

      $ oc create -f pod-projected-svc-token.yaml

      Kubelet 代表 pod 请求并存储令牌,使 pod 可以在一个可配置的文件路径中获得令牌,并在该令牌接近到期时刷新令牌。

  3. 使用绑定令牌的应用程序需要在令牌轮转时重新载入令牌。

    如果令牌使用的时间超过这个值的 80%,或者超过 24 小时,则 kubelet 会轮转令牌。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.