gpt4 book ai didi

jenkins - Kubernetes 对注解进行更改以强制更新部署

转载 作者:行者123 更新时间:2023-12-02 11:52:46 30 4
gpt4 key购买 nike

嘿,我有一个更广泛的问题,因为当我在 kubernetes 中更新 secret 时,它们不会在 pod 中实现,除非它们是 ugprades/reschedules 或只是重新部署;我看到了关于它的其他 stackoverflow 帖子,但没有一个解决方案适合我 Update kubernetes secrets doesn't update running container env vars
pod 上的 python 脚本的应用内解决方案也可以自动更新其 secret https://medium.com/analytics-vidhya/updating-secrets-from-a-kubernetes-pod-f3c7df51770d但这似乎是一个长镜头,我想出了向部署 list 添加注释的解决方案 - 并希望每次 helm 图表都会在其中添加新的时间戳时重新安排 pod - 它确实放了它,但它没有重新安排- 任何想法如何强制这种行为?

apiVersion: apps/v1
kind: Deployment
metadata:
name: xxx
namespace: xxx
labels: xxx
annotations:
lastUpdate: {{ now }}
我也不想将此补丁命令添加到 ci/cd 部署中,因为它的任意性和 - 感觉不是正确的解决方案
kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'
没有其他人找到更好的解决方案来在更改的 secret 上重新部署 pod 吗?

最佳答案

更改 key 时,Kubernetes 本身不会自动滚动更新部署。所以需要一个 Controller 来自动为你做这件事。看看Reloader这是一个 Controller ,用于监视 ConfigMap 和/或 Secret 中是否发生某些更改;然后对相关的 DeploymentConfig、Deployment、Daemonset 和 Statefulset 执行滚动升级。
添加 reloader.stakater.com/auto名称为 xxx 的部署注释并有一个名为 xxx-configmap 的 ConfigMap或名为 xxx-secret 的 secret .
这将通过环境变量或卷挂载自动发现正在使用 xxx-configmap 或 xxx-secret 的部署/守护程序/状态集。并且会在 xxx-configmap 时对相关的 Pod 进行滚动升级。或 xxx-secret已更新

apiVersion: apps/v1
kind: Deployment
metadata:
name: xxx
namespace: xxx
labels: xxx
annotations:
reloader.stakater.com/auto: "true"

关于jenkins - Kubernetes 对注解进行更改以强制更新部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63410690/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com