我想在Bare Meta Kubernetes 1.7中设置一个预定义的PostgreSQL群集,并启用本地PV。我有三个工作节点。我在每个节点上创建本地PV并成功部署状态集(使用一些复杂的脚本来设置Postgres复制)。
但是,我注意到插入式模式和持久性volumeclaim之间存在一种命名惯例。例如
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: postgres
volumeClaimTemplates:
- metadata:
name: pgvolume
创建的PVC是pgvolume-postgres-0
,pgvolume-postgres-1
,pgvolume-postgres-2
。
有些棘手,我可以手动创建PVC并通过选择器绑定到目标PV。我再次测试了状态集。似乎状态集很高兴使用这些PVC。
我成功完成了测试,但我仍然有这个问题。我可以依靠量命名惯例吗?这是无证功能吗?
基于状态满集API参考
卷限制是允许POD参考的索赔列表。状态填充控制器负责将网络身份映射到以维护POD身份的方式索赔。此列表中的每个声明必须在模板中一个容器中至少具有一个匹配(按名称)。此列表中的索赔优先于模板中的任何卷,同名。
所以我想你可以依靠它。
此外,您可以定义一个存储类以利用持久卷的动态配置,因此您不必手动创建它们。
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: my-storage-class
resources:
requests:
storage: 1Gi
有关更多详细信息,请参考Kubernetes中的动态供应和存储类。