适用于StatefulSet的Google Kubernetes引擎上的ReadWriteMany存储

时间:2019-01-16 17:12:03

标签: elasticsearch kubernetes

我使用NFS在Google Kubernetes Engine上的部署上挂载ReadWriteMany存储,如以下链接中所述-

https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266

但是,我的特定用例(用于快照的elasticsearch生产集群)需要将ReadWriteMany卷安装在有状态集合上。 使用以前为有状态集创建的NFS卷时,不会为有状态集的不同副本设置卷。

有什么办法可以克服这个问题或其他我可以使用的方法?

1 个答案:

答案 0 :(得分:0)

该指南根据您的遵循方式会犯一个小错误。持久卷中定义的[ClusterIP]应该是“ nfs-server.default ...”而不是“ nfs-service.default ...”。服务定义中使用“ nfs-server”。

以下是我用于有状态集的非常小的设置。我部署了教程中的前3个文件来创建PV和PVC,然后使用下面的yaml代替了作者所包含的busybox红利yaml。这样部署成功。让我知道你是否有麻烦。

apiVersion: v1
kind: Service
metadata:
    name: stateful-service
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: thestate
---
apiVersion: apps/v1
metadata:
  name: thestate
    labels:
      app: thestate
kind: StatefulSet
spec:
  serviceName: stateful-service
  replicas: 3
  selector:
    matchLabels:
      app: thestate
  template:
    metadata:
      labels:
        app: thestate
    spec:
      containers:
      - name: nginx
        image: nginx:1.8
        volumeMounts:
          - name: my-pvc-nfs
            mountPath: /mnt
        ports:
        - containerPort: 80
          name: web
      volumes:
      - name: my-pvc-nfs
        persistentVolumeClaim:
          claimName: nfs