直接安装的NFS卷上的persistentVolumeReclaimPolicy-kubernetes

时间:2019-03-18 06:53:24

标签: docker kubernetes

  1. 我已经直接安装了用于mysql数据的NFS卷,需要实现存储策略以跨pod删除保留数据,并避免任何损坏。请推荐一些有用的东西。
  2. 我没有找到在直接安装的卷中启用 persistentVolumeReclaimPolicy:保留的方法。我知道可以通过PV / PVC创建来完成,但是有可能通过有状态集来完成...了解特定对象的yaml选项以及在何处获取对象可用的所有选项(参数)时,需要一些准则。目前正在搜索每个选项并尝试-非常努力。
  3. 我无法将configmap文件(my.cnf)挂载到Pod中的文件。它将删除安装路径中的基础文件。想知道它的一般处理方式,我们是否需要为每个配置文件使用单独的安装路径。

代码块

apiVersion: v1
kind: Service
metadata:
  name: mymariadb
  labels:
    app: mymariadb

spec:
  ports:
  - port: 3306
    name: mysql
    targetPort: mysql
    nodePort: 30003
  type: NodePort
  selector:
    app: mymariadb

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mymariadb
  labels:
    app: mymariadb
spec:
  serviceName: "mymariadb"
  selector:
    matchLabels:
      app: mymariadb
  template:
    metadata:
      labels:
        app: mymariadb
    spec:
      containers:
      - name: mariadb
        image: mariadb:10.3.7
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: xxxx
        ports:
        - name: mysql
          containerPort: 3306
        volumeMounts:
        - name: data
          mountPath: /data
          subPath: mysql
        - name: conf
          mountPath: /etc/mysql  # /conf.d removing files
        resources:
          requests:
            cpu: 500m
            memory: 2Gi
      volumes:
      - name: data
        nfs:
          server: 10.12.32.41
          path: /data/mymariadb
        spec:
          persistentVolumeReclaimPolicy: Retain  # not taking
      - name: conf
        configMap:
          name: mycustconf
          items:
          - key: my.cnf
            path: my.cnf

1 个答案:

答案 0 :(得分:1)

首先,我不建议在Kubernetes平台上安装nfs,这有两个原因。从安全角度来看,另一个容器可以访问工作节点上的nfs安装。第二,从性能的角度来看,与其他解决方案相比,工作节点与存储之间的连接会更慢。如您所知,性能对于数据库连接至关重要。我认为您应该对此进行评估。

我建议您使用一种Cloud Native Storage。您可以在下面的链接中查看它们。 Ceph和Gluster是受欢迎的产品。

https://landscape.cncf.io/category=cloud-native-storage&format=card-mode&grouping=category

如果您真的想继续使用nfs解决方案,则可以检查两点:

1)您是否检查了存储设备上的访问列表?您应该会看到nfs安装的工作节点。

2)尝试在工作节点上挂载nfs存储后,可以尝试在kubernetes群集上导入部署。

相关问题