Развертывание Elasticsearch в kubernetes с использованием постоянного тома - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь развернуть кластер Elasticsearch (replicas: 3), используя Statefulset в kubernetes, и мне необходимо сохранить данные Elasticsearch в постоянном томе (PV). Поскольку каждый экземпляр Elasticsearch имеет свою собственную папку данных, мне нужно иметь отдельную папку данных для каждой реплики в PV. Я пытаюсь использовать volumeClaimTemplates и mountPath: /usr/share/elasticsearch/data, но это приводит к ошибке: pod has unbound immediate PersistentVolumeClaims во втором модуле. Следовательно, как я могу добиться этого с помощью Statefulset?

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

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Нет информации о том, как вы пытаетесь установить эластичный поиск, однако: В качестве примера, пожалуйста, следуйте:

Согласно документации для StatefulSet - ограничения :

Хранилище для данного Pod должно быть либо предоставленопоставщиком PersistentVolume на основе запрошенного класса хранения или предварительно подготовленным администратором.

Это похоже на ваш пример проблемы с динамическим выделением ресурсов хранилища.

Пожалуйста, проверьте класс хранения, если pv и pvc были созданы и связаны друг с другом и storage class в volumeClaimTemplates:

    volumeMounts:
      - name: "elasticsearch-master"
        mountPath: /usr/share/elasticsearch/data
 volumeClaimTemplates:
  - metadata:
      name: elasticsearch-master
    spec:
      accessModes:
      - ReadWriteOnce
      storageClassName: name #please refer to this settings to see if you are using default storage class. In other case you should spceify this parameter manually
      resources:
        requests:
          storage: 30Gi

Надеюсь, эта помощь.

0 голосов
/ 11 октября 2019

Если вы используете динамическое выделение ресурсов, то вы можете автоматически создать том в бэкэнде, например, диск является хранилищем для PV в Azure (для операций чтения с однократной записью), в противном случае вам необходимо создать его вручную

* 1002. * Как только вы создадите том, просто создайте pvc в соответствующем пространстве имен, размер которого соответствует размеру pv, тогда вы просто должны передать имя тома в определении pvc, оно будет привязано автоматически.

Вы можете попробовать что-то вроде этого -

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: claimName
  namespace: namespace
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: default
  volumeName: pv-volumeName
status:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi

Пожалуйста, поделитесь, если у вас все еще есть проблемы

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