persistentVolumeReclaimPolicy на непосредственно смонтированных томах NFS - kubernetes - PullRequest
0 голосов
/ 18 марта 2019
  1. Я непосредственно смонтировал том NFS для данных mysql, мне нужно реализовать политику хранения для сохранения данных при удалении модуля и избежать любых повреждений. пожалуйста, порекомендуйте некоторые полезные.
  2. Я не нашел способа включить persistentVolumeReclaimPolicy: сохранить в непосредственно подключенных томах. Я знаю, что это можно сделать с помощью создания PV / PVC, но возможно ли это из томов с установленным состоянием ... Нужны некоторые рекомендации для понимания параметров yaml для конкретного объекта, где можно получить все параметры (параметры), доступные для объекта. в данный момент гуглюсь по каждому варианту и пытаюсь - так сложно.
  3. Я не смог смонтировать файл configmap (my.cnf) в файл в модуле. он удаляет основные файлы в пути монтирования. Любопытно узнать, как это вообще делается, нужен ли отдельный путь монтирования для каждого файла конфигурации.

кодовый блок

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 Ответ

1 голос
/ 18 марта 2019

Во-первых, я не предлагал монтировать nfs на платформе Kubernetes по двум причинам. С точки зрения безопасности, другой контейнер может получить доступ к монтированию nfs на рабочих узлах. Второе, с точки зрения производительности, соединение между рабочими узлами и хранилищем будет медленнее, по сравнению с другими решениями. Как вы знаете, производительность очень важна для соединений с БД. Я думаю, вы должны оценить это.

Я предлагаю вам использовать одно из хранилищ Cloud Native. Вы можете просмотреть их по ссылке ниже. Ceph и Gluster являются популярными продуктами.

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

Если вы действительно хотите продолжить работу с решением nfs, вы можете проверить два момента:

1) Вы проверили список доступа на устройстве хранения? Вы должны увидеть рабочие узлы для монтирования nfs.

2) После того, как вы попытаетесь смонтировать хранилище nfs на рабочих узлах, вы можете попытаться импортировать развертывание в свой кластер kubernetes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...