【k8s|k8s--configmap】当卷中使用的ConfigMap
被更新时,所投射的键最终也会被更新。kubelet
组件会在每次周期性同步时检查所挂载的ConfigMap
是否为最新。 不过,kubelet
使用的是其本地的高速缓存来获得ConfigMap
的当前值。
ConfigMap
既可以通过watch
操作实现内容传播(默认形式),也可实现基于TTL
的缓存,还可以直接经过所有请求重定向到API
服务器。 因此,从ConfigMap
被更新的那一刻算起,到新的主键被投射到Pod
中去,这一 时间跨度可能与 kubelet 的同步周期加上高速缓存的传播延迟相等。 这里的传播延迟取决于所选的高速缓存类型 (分别对应watch
操作的传播延迟、高速缓存的TTL
时长或者 0)。
以环境变量方式使用的ConfigMap
数据不会被自动更新。 更新这些数据需要重新启动Pod
。
Kubernetes
特性 不可变更的Secret
和ConfigMap
提供了一种将各个Secret
和ConfigMap
设置为不可变更的选项。对于大量使用 ConfigMap 的 集群(至少有数万个各不相同的ConfigMap
给Pod
挂载)而言,禁止更改ConfigMap
的数据有以下好处:
- 保护应用,使之免受意外(不想要的)更新所带来的负面影响。
- 通过大幅降低对
kube-apiserver
的压力提升集群性能,这是因为系统会关闭 对已标记为不可变更的ConfigMap
的监视操作。
immutable
字段设置为true
创建不可变更的ConfigMap
推荐阅读
- kubernetes|kubernetes部署gluster三节点集群问题
- k8s|k8s flannel
- 大数据|k8s搭建es集群
- k8s|kubernetes集群搭建
- Kubernetes|Kubernetes 搭建 ES 集群(存储使用 local pv)
- docker|如何部署一个Kubernetes集群
- 搭建一个开源项目|搭建一个开源项目12-Kubernetes集群部署(下)以及elasticsearch部署
- elasticsearch|kubernetes搭建es集群
- k8s|Kubernetes简介及集群的搭建部署