【问题标题】:k8s mount service account tokenk8s挂载服务账号token
【发布时间】:2022-01-17 16:06:55
【问题描述】:

我如何挂载服务帐户令牌, 我们正在使用一个不支持它的图表,一个小时后图表失败了。

https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume?

我了解到,从 1.22.x 开始,k8s 的默认行为

BoundServiceAccountTokenVolume 在以下链接中 https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/

我指的是手动挂载服务帐户令牌

我说的是不支持的vectordev https://vector.dev/docs/setup/installation/platforms/kubernetes/

更新 根据这篇文章,这是在 k8s 1.22.x 上执行此操作的方法 请提供一个例子,因为我不知道如何使它工作 https://github.com/vectordotdev/vector/issues/8616#issuecomment-1010281331

【问题讨论】:

  • 如你所说,这是 Kubernetes 最新版本的默认行为,它将令牌放置在 /var/run/secrets/kubernetes.io/serviceaccount。你运行的是什么版本的 Kubernetes?
  • @larsks - 我们正在运行 1.21.5 并计划升级到 1.22.x,我们需要按照此处的建议安装密钥,(我们有同样的问题)github.com/vectordotdev/vector/issues/…,任何示例如何我们能做到这将非常有帮助
  • 对于 kubernetes 1.21.2 (Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2",...),如果我在我的 pod 清单中设置 serviceAccountName,我会发现令牌安装在预期的位置。由于它似乎对我有用,我不知道该建议什么。

标签: amazon-web-services kubernetes rbac k8s-serviceaccount


【解决方案1】:

Vector 代理访问令牌没有问题,但令牌现在默认会在一个小时内过期;与没有到期的以前相比。当令牌超过有效时间时,代理应用程序需要从已挂载的令牌卷(以前是秘密卷)中重新加载令牌。需要在代理应用程序中进行更改以支持此范例,而不是在 K8s 上。

【讨论】:

  • 谢谢,但正如您在此处看到的,建议是手动操作,github.com/vectordotdev/vector/issues/…,这就是我想知道的方法....
  • 如果您指的是如何在集群 v1.21.x 上关闭此功能;将 BoundServiceAccountTokenVolume=false 附加到 kube-apiserver 和 kube-controller-manager --feature-gate 标志。但是,如果您在托管集群(例如 GKE 等)上,则无法关闭此功能。除此之外,您能否详细说明“...手动执行...”是什么意思?
  • 是的,我是为 1.21.5 做的,我们需要为 1.22.x 以某种方式解决它,建议手动完成
  • BoundServiceAccountTokenVolume 功能门是removed in v1.23。您仍然可以为 v1.22.x 关闭此功能
猜你喜欢
  • 2016-04-13
  • 2018-10-27
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
相关资源
最近更新 更多