kubernetes - 更新 kubernetes secret 不会更新正在运行的容器环境变量

标签 kubernetes kubectl

当前更新 kubernetes secret 文件时,为了应用更改,我需要运行 kubectl apply -f my-secrets.yaml .如果有一个正在运行的容器,它仍然会使用旧的 secret 。为了在正在运行的容器上应用新的 secret ,我目前运行命令 kubectl replace -f my-pod.yaml .
我想知道这是否是更新正在运行的容器 secret 的最佳方法,还是我遗漏了什么。

谢谢。

最佳答案

The secret docs for users说这个:

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/

相关文章:

docker - 图像中需要有一个可用的 Kubectl 二进制文件

kubernetes - 在 Kubernetes AKS 中加密静态 secret 数据?

kubernetes - 如何从 kubernetes 集群注销 kubernetes 节点

kubernetes - 在 Kubernetes 上部署失败 : kubectl apply fail

kubernetes - 使用 k8s/eks 信息播种新机器的最佳方式

kubernetes - 容器引擎集群版本1.1.7节点不可用

kubernetes - kube-linter lint 是否可以每次只拉取请求更改而不是整个 kubernetes 文件

kubernetes - 如何在 pod IP 上使用 kube-dns 启用反向 DNS 查找?

Kubernetes(在 GKE 上)通过 NAT 进行特定 kube 服务的外部连接?

kubernetes - Kubernetes-如何将Pod分配给具有特定标签的节点