Невозможно настроить couchbase operator 1.2 с постоянным томом в классе локального хранилища - PullRequest
1 голос
/ 14 июля 2020

Я пытаюсь настроить couchbase operator 1.2 в своей локальной системе. Я выполнил следующие шаги:

Но проблема в том, что как только система или docker сбрасывается, или модуль сбрасывается, данные кластера теряются.

То же самое я попытался сделать, добавив постоянный том с классом локального хранилища, как указано в docs но результат был все тот же. Модуль все еще сбрасывается. и я не могу найти причину того же.

Итак, если кто-нибудь может посоветовать, как сделать то же самое с постоянным томом в классе локального хранилища. Я успешно создал класс хранилища. Просто возникла проблема при поднятии кластера и сохранении согласованности для него.

Вот yamls, которые я использовал для создания класса хранилища и утверждения pv и pv

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
 name: myssd
provisioner: local
apiVersion: v1
kind: PersistentVolume
metadata:
 name: couchbase-data-2
 labels:
    type: local
spec:
 capacity:
  storage: 10Gi
 accessModes:
  - ReadWriteOnce
 storageClassName: myssd
 hostPath:
    path: "/home/<user>/cb-storage/"
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-test-claim-2
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: myssd
  resources:
    requests:
      storage: 1Gi

Заранее спасибо

1 Ответ

2 голосов
/ 14 июля 2020

Постоянный том с использованием hostPath недолговечен. Используйте объем local. По сравнению с томами hostPath, тома local могут использоваться надежным и переносимым образом без ручного планирования Pod'ов для узлов, поскольку система знает об ограничениях узла тома, глядя на сходство узлов на PersistentVolume.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

---

apiVersion: v1
kind: PersistentVolume
metadata:
  name: couchbase-data
spec:
  capacity:
    storage: 10Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /home/<User>/cb-storage/
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1
          - node2
          - node3
          - node4

Вам не нужно создавать PersistentVolume вручную, потому что класс хранилища будет делать это изнутри.

Также вам необходимо настроить local поставщик тома, как описано здесь , чтобы происходила инициализация динамической c с использованием класса локального хранилища.

...