在 Kubernetes 上暂存和生产

Staging and Production on Kubernetes

我正在为 2 个 命名空间 共享同一个集群:stagingproduction。两个命名空间之间的唯一区别是:

  1. 安装到某些 pods 的卷(stagingproduction 之间的独立持久性,很明显!)
  2. 几个用于相对寻址的 web-URL
  3. 用于复杂持久性的数据库的几个 IP

我已经设法解决 (2)(3) 如下,以便维护一个单一的 YAML 文件用于所有 ReplicationControllers:

但是,我无法找到令人满意的方法来参考 gcePersistentDisk pdName - 我似乎无法使用 ConfigMap,因此有点难过。解决这个问题的合适方法是什么?最好的选择似乎是使用不同的字符串维护 2 个单独的 YAML 文件,但这有代码味道,因为它违反了 DRY.

此外,非常感谢对我上面提到的其余设置的任何建设性评论:-)

您可能会创建一个 PersistentVolumeClaim in each namespace. Take a look at Can a PVC be bound to a specific PV? 关于如何 "pre-bind" PersistentVolumes 到 PersistentVolumeClaims。

可能不是理想的解决方案,但它可能会起作用,直到 PVC 支持标签选择器。