2

已经使用 Kubernetes 成功实现了 Vault,并且在 K8s 中运行的应用程序正在从 Hashicorp Vault 获取环境变量。一切都很好!但是,想要向前迈出一步,想要在 Vault 中的 secret 发生更改时重新启动 pod,到目前为止,我们必须在对 Vault secret 进行更改时手动重启 pod 以重置环境变量。如何做到这一点?听说过 confd 但不确定如何实现!

4

3 回答 3

3

使用重新加载器https://github.com/stakater/Reloader。我们发现它在我们的集群中非常有用。它进行滚动更新,因此您也可以在零停机时间的情况下更改配置。此外,如果您在 configmap 中犯了一些错误,您可以轻松地进行回滚。

于 2020-09-13T21:23:02.683 回答
1

几个想法,取决于你想投入多少精力:

  1. 只是每隔一段时间重新启动一次 pod。一个 hacky 方法是使用 liveness probe,比如这个 answer。缺点是你不能在没有额外脚本的情况下将 liveness probe 用作真正的健康检查。

  2. 创建一个操作员来轮询 Vault 的更改并指示 Kubernetes 在检测到更改时重新启动 pod。不确定 Vault 是否有可用于此的事件 API。

于 2019-08-29T22:46:22.510 回答
0

https://www.vaultproject.io/docs/agent/template#renewals-and-updating-secrets

如果机密或令牌不可更新或租用,Vault Agent 将每 5 分钟获取一次机密。这是不可配置的。不可更新的秘密包括(但不限于)KV 版本 2。

于 2020-09-13T19:36:28.683 回答