所以我知道这是可能的,并且以这种方式使用 ConfigMaps 具有自动更新功能,这很棒。
但是当在 pod 中使用这样的 ConfigMap 时,到底发生了什么?我们是否将这些作为实际文件从磁盘读取?或者这些文件是否存储在某种内存 fs / ETCD 中?
我的代码会在每个请求上读取这些“文件”,但如果这意味着实际的磁盘操作,那就不好了。那么这是如何工作的,速度有多快?
但是当在 pod 中使用这样的 ConfigMap 时,到底发生了什么? 我们是否将这些作为实际文件从磁盘读取?或者这些文件是否存储 在某种内存中的 fs / ETCD 中?
ConfigMaps 存储在 ETCD 数据存储中
我的代码会在每个请求上读取这些“文件”,但如果这意味着实际的磁盘操作,那就不好了。那么这是如何工作的以及如何 这是快吗?
取决于你如何消费
ConfigMap
s。您可以在 Pods
中注入特定的键/值对作为环境变量,并将它们安装为卷。
在安装的情况下,
ConfigMap
s 作为文件放置在 Pod 的临时存储中。它们只放置一次,在 Pod 生命周期的开始。
在 Pod 中运行的应用程序将针对每个请求直接从文件中读取数据。
IMO,读取方面的性能损失不会那么大,因为 ETCD pod/daemon 服务与其他服务位于同一个 k8s 集群中。但是,如果您的 ETCD 是某个其他外部节点的一部分,您可能会面临网络级延迟。
查看此链接以进一步阅读