当前更新 kubernetes secret 文件时,为了应用更改,我需要运行 kubectl apply -f my-secrets.yaml
.如果有一个正在运行的容器,它仍然会使用旧的 secret 。为了在正在运行的容器上应用新的 secret ,我目前运行命令 kubectl replace -f my-pod.yaml
.
我想知道这是否是更新正在运行的容器 secret 的最佳方法,还是我遗漏了什么。
谢谢。
最佳答案
Mounted Secrets are updated automatically When a secret being already consumed in a volume is updated, projected keys are eventually updated as well. The update time depends on the kubelet syncing period.
已安装的 secret 已更新。问题是什么时候。如果 secret 的内容被更新,并不意味着您的应用程序会自动使用它。在这种情况下,您的应用程序的工作是观察文件更改以采取相应的行动。考虑到这一点,您目前需要做更多的工作。我现在想到的一种方法是运行 scheduled job in Kubernetes它与 Kubernetes API 对话以启动您的 deployment 的新部署.这样你理论上可以实现你想要更新你的 secret 。它在某种程度上并不优雅,但这是我目前唯一想到的方法。我仍然需要自己检查更多关于 Kubernetes 的概念。所以请耐心等待。
关于kubernetes - 更新 kubernetes secret 不会更新正在运行的容器环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945800/