pot*_*ato 1 jenkins kubernetes kubernetes-helm
嘿,我有一个更广泛的问题,因为当我在 kubernetes 中更新秘密时,它们不会在 pod 中实现,除非它们是 ugprades/reschedules 或只是重新部署;我看到了另一篇关于它的 stackoverflow 帖子,但没有一个解决方案适合我更新 kubernetes 的秘密不会更新正在运行的容器环境变量
同样如此,pod 上的 python 脚本的应用程序内解决方案可以自动更新其秘密https://medium.com/analytics-vidhya/updating-secrets-from-a-kubernetes-pod-f3c7df51770d但它似乎是一个远景和我想出了向部署清单添加注释的解决方案 - 并希望每次舵图将新的时间戳放入其中时,它都会重新安排 Pod - 它确实放置了它,但它没有重新安排 - 任何想法如何强制这种行为?
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxx
namespace: xxx
labels: xxx
annotations:
lastUpdate: {{ now }}
Run Code Online (Sandbox Code Playgroud)
我也不想将这个补丁命令添加到 ci/cd 部署中,因为它的仲裁和 - 感觉不是正确的解决方案
kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'
Run Code Online (Sandbox Code Playgroud)
没有其他人找到更好的解决方案来在已更改的机密上重新部署 pod 吗?
当秘密更改时,Kubernetes 本身不会自动滚动更新部署。所以需要一个控制器来自动为你做这件事。看看Reloader,它是一个控制器,它监视ConfigMap 和/或 Secret 中是否发生了一些变化;然后对相关的 DeploymentConfig、Deployment、Daemonset 和 Statefulset 执行滚动升级。
reloader.stakater.com/auto使用 name 向部署添加注释,xxx并有一个名为 的 ConfigMapxxx-configmap或称为 Secret xxx-secret。
这将自动发现部署/守护进程/状态集,其中 xxx-configmap 或 xxx-secret 通过环境变量或从卷安装使用。并且会在更新xxx-configmap或xxx-secret更新时对相关 Pod 执行滚动升级
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxx
namespace: xxx
labels: xxx
annotations:
reloader.stakater.com/auto: "true"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |