我正在为2个名称空间共享相同的集群:登台和生产.两个名称空间之间的唯一区别是:
>安装到某些pod的卷(分段和生产之间的单独持久性,显然!)
>一些用于相对寻址的网址
>用于复杂持久性的数据库的几个IP
我已设法解决(2)和(3)如下,以便为所有ReplicationControllers维护一个YAML文件:
>使用命名空间本地的ConfigMaps定义通过环境变量传递到pod中的任何配置
>使用带端点的服务来处理指向不同内部IP的DNS条目
但是,我无法找到一个令人满意的方法来获得gcePersistentDisk的pdName参考 – 我似乎无法使用ConfigMap,因此有点难过.什么是适当的方式来解决这个问题?最好的替代方案似乎是使用不同的字符串来维护2个单独的YAML文件,但是它具有代码味道,因为它违反了DRY.
此外,如上所述,我对其余设置的任何建设性评论都非常感谢:-)
您可以在每个命名空间中创建一个PersistentVolumeClaim.请看一下Can a PVC be bound to a specific PV?,了解如何将PersistentVolumes“预绑定”到PersistentVolumeClaims.