1

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

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

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

4

1 回答 1

1

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

以下脚本(参见此处)实现了该方法。

请注意:

  • (1) 现在是从 1.9.6 开始的默认值 - 请参阅进行讨论。
  • (2) 的关键是使用预计体积
  • (4) 是此处记录的开箱即用功能,使用 subPath 时除外。
  • 对所有文件使用单个 configMap 可能会导致“...错误:ConfigMap “”无效:[]:太长:最多必须有 1048576 个字符”。
  • 对每个文件使用 configMap 对文件内容也有约 1MB 的大小限制(这是一个 etcd 限制)。
于 2018-09-07T02:19:04.047 回答