【问题标题】:How to restart Kubernetes pod when a secret is updated in Hashicorp Vault?在 Hashicorp Vault 中更新秘密时如何重新启动 Kubernetes pod?
【发布时间】:2020-01-02 22:55:16
【问题描述】:

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

【问题讨论】:

    标签: kubernetes hashicorp-vault confd


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-05
          • 2017-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-22
          • 2022-11-07
          • 1970-01-01
          相关资源
          最近更新 更多