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