我想学习如何在不中断和重新创建部署的情况下更新工作组中的 secret 。
目前,pod通过以下方式将 secret 作为环境变量:
env:
- name: SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
key: secret_access_key
name: secrets
但这只会在他们启动时发生。
因此,如果需要更改 secret ,我必须:
secrets.yaml
的 secret kubectl apply -f secrets.yaml
kubectl delete -f worker-deployment.yaml
kubectl apply -f worker-deployment.yaml
我真的不喜欢第3步和第4步,因为它们会终止正在进行的作业。
有什么更好的工作流程来更新环境变量?
最佳答案
无法对Pod的环境变量进行“热重装”。
但是,您无需再次删除并重新创建部署即可应用新的 secret 值。您只需要重新创建基础容器。一些选项是:
kubectl delete pods
重新创建它们terminationGracePeriodSeconds
到30
的changing the 31
)。 kubectl rollout restart
对部署进行滚动重新启动††
rollout restart
仅在kubernetes v1.15+上可用
关于kubernetes - 如何在不中断部署的情况下刷新工作人员的 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55642384/