kubernetes在所有Pod副本中将目录挂载为只读

时间:2018-09-04 07:17:32

标签: kubernetes persistent-volumes configmap

在pod中挂载外部目录的最佳方法是:

  1. 对目录的pod访问权限是只读的
  2. 整个目录树都可以在窗格中访问
  3. 对目录内容的任何更改或在此目录中创建新文件和目录的任何操作都会立即反映到窗格中
  4. pod的所有副本都具有相同的目录树

显然,使用ConfigMaps的任何解决方案都不满足条件2和3。

1 个答案:

答案 0 :(得分:1)

使用configMap-s可以满足(1)至(4)的全部要求,但(3)的一部分除外-对现有文件内容的更改(通过更改其configMap-s)将立即(几乎)反映在pod中但是新文件或目录不会。

以下脚本-请参见here-实现该方法。

注意:

  • (1)现在是从1.9.6开始的默认设置-有关讨论,请参见this
  • (2)的关键是使用projected volumes
  • (4)是here中所述的即用型功能,但使用subPath时除外。
  • 对所有文件使用单个configMap可能会导致“ ...错误:ConfigMap“”无效:[]:太长:最多只能包含1048576个字符”。
  • 每个文件使用configMap的文件内容大小限制也约为1MB(这是etcd的限制)。