Как заставить glusterfs пережить обновление кластера

Я пытаюсь использовать glusterfs, установленные непосредственно на узлах моего кластера GCE. Установка не сохраняется при обновлении кластера, что можно решить с помощью скрипта начальной загрузки. Проблема в том, что когда я переустановил glusterfs вручную и смонтировал кирпич, не было томов, которые мне пришлось принудительно воссоздавать.

Что случилось? Хранит ли glusterfs объемные данные где-то еще, кроме кирпичей? Как предотвратить это?


person Jan Imrich    schedule 09.05.2018    source источник


Ответы (1)


Могу ли я подтвердить, что вы делаете это в кластере Kubernetes? Я предполагаю, что вы, как вы упомянули обновления кластера.

Если да, то когда вы говорите, что gluster был установлен непосредственно на ваших узлах, я не уверен, что понимаю эту часть вашего поста. Мое понимание предполагаемого использования glusterfs заключается в том, что оно существует как распределенная файловая система, и поэтому хранилище является частью отдельного кластера для узлов Kubernetes.

Я считаю, что это рекомендуемый метод для использования glusterfs с Kubernetes. , и таким образом данные в томах будут сохранены после обновления кластера Kubernetes.

Вот шаги, которые я выполнил.

Я создал кластер glusterfs, используя информацию/скрипт из первых трех шагов в этом это руководство (особенно шаги "Клонирование", "Загрузка кластера" и "Создание первого тома"). Что касается приведенного ниже YAML, может быть полезно знать, что мой том glusterfs был назван «glustervolume».

Убедившись, что том gluster создан, я создал Kubernetes, сервис и конечные точки, которые указывают на этот том. IP-адреса в разделе конечной точки YAML ниже — это внутренние IP-адреса экземпляров в кластере хранилища glusterfs.

---
apiVersion: v1
kind: Service
metadata:
  name: glusterfs-cluster
spec:
  ports:
  - port: 1
---
apiVersion: v1
kind: Endpoints
metadata:
  name: glusterfs-cluster
subsets:
  - addresses:
      - ip: 10.132.0.6
    ports:
      - port: 1
  - addresses:
      - ip: 10.132.0.7
    ports:
      - port: 1
  - addresses:
      - ip: 10.132.0.8
    ports:
      - port: 1

Затем я создал модуль, чтобы использовать том gluster:

---
apiVersion: v1
kind: Pod
metadata:
  name: glusterfs
spec:
  containers:
  - name: glusterfs
    image: nginx
    volumeMounts:
    - mountPath: "/mnt/glusterfs"
      name: glustervolume
  volumes:
  - name: glustervolume
    glusterfs:
      endpoints: glusterfs-cluster
      path: glustervolume
      readOnly: false

Поскольку том glusterfs существует отдельно от кластера Kubernetes (т. е. в его собственном кластере), обновления Kubernetes не повлияют на том.

person neilH    schedule 19.05.2018