我可以依赖volumeClaimTemplates命名约定吗?

时间:2017-09-27 07:47:17

标签: kubernetes persistent-volumes persistent-volume-claims

我想在一个带有EventDeduplicationLambdaIntegrationTest.java enable的裸元kubernetes 1.7中设置一个预定义的PostgreSQL集群。我有三个工作节点。我在每个节点上创建本地PV并成功部署有状态集(使用一些复杂的脚本来设置Postgres复制)。

但是我注意到volumeClaimTemplates和PersistentVolumeClaim之间存在一种命名约定。 例如

R

创建的pvc是apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: postgres volumeClaimTemplates: - metadata: name: pgvolume pgvolume-postgres-0pgvolume-postgres-1

使用一些local PV,我手动创建PVC并通过选择器绑定到目标PV。我再次测试有状态集。似乎有状态的设置非常乐意使用这些PVC。

我成功完成了测试但仍然有这个问题。我可以依赖volumeClaimTemplates命名约定吗?这是一个无证的功能吗?

1 个答案:

答案 0 :(得分:4)

基于有状态API reference

  

volumeClaimTemplates是允许pod引用的声明列表。 StatefulSet控制器负责以维护pod标识的方式将网络标识映射到声明。此列表中的每个声明必须在模板中的一个容器中至少有一个匹配(按名称)volumeMount。此列表中的声明优先于模板中具有相同名称的任何卷。

所以我猜你可以依靠它。

此外,您可以定义存储类以利用持久卷的动态配置,因此您不必手动创建它们。

  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: my-storage-class
      resources:
        requests:
          storage: 1Gi

有关详细信息,请参阅Dynamic Provisioning and Storage Classes in Kubernetes