当秘密更新时重新启动 Pod

ram*_*ddy 11 openshift kubernetes kubernetes-pod

我们使用 Secret 作为 Pod 上的环境变量,但每次更新 Secret 时,我们都会重新部署 Pod 以使更改生效。我们正在寻找一种机制,只要机密更新,Pod 就会自动重新启动。对此有什么帮助吗?

提前致谢。

Jon*_*nas 7

有很多方法可以处理这个问题。

首先,使用Deployment而不是不受管理的“裸”Pod。当 Pod 模板更改时,Deployment 将为您创建新的 Pod。

其次,管理 Secrets 可能有点棘手。如果您可以使用可以使用Kustomize SecretGenerator 的设置,那就太好了- 然后每个新的都Secret将获得其唯一的名称。此外,该唯一名称会Deployment自动反映到 - 当 a 发生更改时,您的 pod 将自动重新创建Secret- 这与您的原始问题相匹配。当以这种方式处理Secret和时Deployment,您可以通过以下方式应用更改:

kubectl apply -k <folder>
Run Code Online (Sandbox Code Playgroud)


Vis*_*ant -1

有多种方法可以做到这一点:

  • 只需重新启动 Pod

    • 这可以手动完成,或者,
    • 您可以使用 VMware carvel kapp 控制器(文档)提供的操作员,使用 kapp 控制器您可以重新加载 Secrets/configmap,而无需重新启动 Pod(它会helm template <package>定期有效地运行,并在发现任何差异时应用更改helm template) ,查看我的设计,无需重新启动 pod 即可重新加载日志级别。
  • 使用服务绑定https://servicebinding.io/