首页 > 解决方案 > Openshift/Kubernetes:在 yaml 文件中使用服务帐户中的令牌

问题描述

我目前有以下问题。我正在创建一个模板,我在其中指定一个 ServiceAccount 和一个 RoleBinding。Openshift 自行创建一个 Token 并将其存储在名为 [service-account-name]-[az,1-9{5}] 的密钥中。现在我想将该秘密传递给一个环境变量(因为它将被该容器中可以处理环境变量的另一个配置消耗)

现在您可以轻松地使用环境变量,例如

env:
- name: something
  valueFrom:
    secretKeyRef:
      name: someKey
      key: someValue

但现在我遇到了问题,有一个秘密,但我不知道确切的名称,因为它的一部分是随机的。现在我的问题是

有没有办法在模板中使用服务帐户的秘密内容?

标签: templateskubernetesyamlopenshiftenvironment

解决方案


您可以通过运行检查您的秘密 kubectl get secret,然后通过运行查看更多信息。kubectl describe secret mysecret您需要对其进行解码才能查看它(我没有使用 OpenShift 的经验)。您还可以将它们用作环境变量,如此所述。
至于 ServiceAccount 和令牌,您可以在 OpenShift文档中指定的容器内使用它

包含 pod 服务帐户的 API 令牌的文件会自动挂载到 /var/run/secrets/kubernetes.io/serviceaccount/token。

我认为您可以将文档中的命令添加到 Pod 模板中command:类似于此示例的部分。您还可以在此处找到有关使用机密的更多信息。


推荐阅读