reloader 简介
Reloader 可以观察 ConfigMap 和 Secret 中的变化,并通过相关的 deploymentconfiggs、 deploymentconfiggs、 deploymonset 和 statefulset 对 Pods 进行滚动升级。
helm 安装
helm repo add stakater https://stakater.github.io/stakater-charts
helm repo update
helm install stakater/reloader
安装reloader
git clone https://github.com.cnpmjs.org/stakater/Reloader
cd Reloader
kubectl apply -f deployments/kubernetes/reloader.yaml
自动更新
reloader.stakater.com/search 和 reloader.stakater.com/auto 并不在一起工作。如果你在你的部署上有一个 reloader.stakater.com/auto : “ true”的注释,该资源对象引用的所有configmap或这secret的改变都会重启该资源,不管他们是否有 reloader.stakater.com/match : “ true”的注释。
kind: Deployment
metadata:
annotations:
reloader.stakater.com/auto: "true"
spec:
template: metadata:
测试
deploy
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
# reloader.stakater.com/auto: "true"
reloader.stakater.com/search: "true"
labels:
run: nginx
name: nginx
namespace: default
spec:
replicas: 1
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx
name: nginx
volumeMounts:
# 必须匹配volumes的名称,定义configmap
- name: nginx-cm
mountPath: /data/cfg
readOnly: true
volumes:
# 定义逻辑卷的名称
- name: nginx-cm
configMap:
# 使用configmap资源的名称
name: nginx-cm
items:
# 使用configmap中到那个key
- key: config.yaml
# 使用configmap中到key映射到容器中到文件名称
path: config.yaml
mode: 0644
configmap
apiVersion: v1
data:
config.yaml: |
# project settings
# go2cloud_api service config
DEFAULT_CONF:
port: 8888
# data disk api
UNITTEST_TENCENT_ZONE: ap-chongqing-1
kind: ConfigMap
metadata:
name: nginx-cm
annotations:
reloader.stakater.com/match: "true"
注意事项
● reloader为全局资源对象,建议部署在一个公共服务的ns下,然后其他ns也可以正常使用reloader特性。
● Reloader.stakater.com/auto : 如果配置configmap或者secret在 deploymentconfigmap/deployment/daemonsets/Statefulsets
● secret.reloader.stakater.com/reload 或者 configmap.reloader.stakater.com/reload 注释中被使用,那么 true 只会重新加载 pod,不管使用的是 configmap 还是 secret。
● reloader.stakater.com/search 和 reloader.stakater.com/auto 不能同时使用。如果你在你的部署上有一个 reloader.stakater.com/auto : “ true”的注释,那么它总是会在你修改了 configmaps 或者使用了机密之后重新启动,不管他们是否有 reloader.stakater.com/match : “ true”的注释。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。