我可以在kubernetes stateflots的体积板中使用现有的持续磁盘吗?



我正在使用Google Container Engine来运行MongoDB副本集的状态集(3个副本Pods)。

这与持久存储的动态配置合作良好 - 在创建状态集时为每个POD提供了新的存储。

但是,如果我重新启动状态填充,似乎我无法重新绑定旧的持久量,因为新存储将再次提供。这意味着数据丢失了。理想情况下,持久存储应在Kubernetes群集本身的删除中生存,并保留数据并准备在新集群中再次使用。

是否有一种方法可以创建GCE持久性磁盘并将其用于状态满集的持久卷声明?

[2017年9月20日更新]

找到答案:这是解决方案(归功于@rahulkrishnan r a)

  1. 创建一个存储类,指定基础磁盘类型和区域

  2. 创建一个指定存储类创建的persistentVolume上面,并引用您希望安装的持续磁盘

  3. 创建一个PersistentVolumeClaim。命名PVC <pvc template name>-<statefulset name>-<ordinal number>很重要。(正确的名称是技巧!)指定体积为上面创建的PV和存储班级。
  4. 创建与具有复制品一样多的PV和PVC正确的名称。
  5. 使用PVC模板创建状态满集。

方法1:动态

您可以在statefulset.yaml文件中添加卷索赔模板以及部署定义

dolumeClaimTemplates:
- 元数据:
名称:存储
注释:
卷。规格:
AccessModes:[&quot'ReadWriteOnce;]
资源:
请求:
存储:10GI

创建存储类存储.yaml文件

种类:Storageclass
apiversion:storage.k8s.io/v1beta1
元数据:
名称:慢
供应商:kubernetes.io/gce-pd
参数:
类型:PD标准
区域:Asia-East1-A

方法2静态PV:

https://github.com/rahulkrishnanfs/percona-xtradb-statefulseflet-cluster-k8s/blob/master/master/percona.yml

注意: persistentVolumereReclicyPolicy:保留如果要保留卷

,请使用

可以根据Storageclass Resource

静态地静态地配置持续卷。

看起来就像使用新的kubernetes(1.12)支持现有的卷,如果您已经有数据磁盘,这些卷可能会很方便。例如,我的应用程序没有较高的DB负载,我对使用3个实例(PSA)的Replica设置感到满意。对于我创建了一个使用一个副本并将现有gcePersistentDisk用于主要和次级的每个符号的人。以下是第二个节点的配置:

apiVersion: v1
kind: Service
metadata:
  name: mongo-svc-b
spec:
  ports:
    - port: 27017
      targetPort: 27017
  clusterIP: None
  selector:
    app: si
    tier: db
    node: b
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongo-b
spec:
  replicas: 1
  selector:
    matchLabels:
      app: si
      tier: db
      node: b
  serviceName: mongo-b
  template:
    metadata:
      labels:
        app: si
        tier: db
        node: b
    spec:
      containers:
        - name: mongo
          image: mongo:3.2
          command: ["mongod"]
          args: ["-replSet", "si"]
          ports:
            - containerPort: 27017
            - containerPort: 28017
          volumeMounts:
            - name: mongo-persistent-storage
              mountPath: /data/db
      volumes:
        - name: mongo-persistent-storage
          gcePersistentDisk:
            pdName: mongo-disk-b-green
            fsType: ext4

相关内容

  • 没有找到相关文章

最新更新