Ошибка FailedAttachVolume в Kubernetes с StorageOS - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь настроить кластер высокой доступности с storageOS. В буквальном смысле я хочу реплицировать тома между узлами, и если узел не работает, мое приложение Statefull должно запуститься на новом узле с последним состоянием.

У меня 1 главный и 2 подчиненных узла на голом железе (виртуальная коробка). Я успешно установил хранилища со штурвалом в соответствии с этими документами: https://docs.storageos.com/docs/platforms/kubernetes/install/1.13

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

Я пытаюсь создать постоянную заявку на том и связать ее с модулем. После создания pvc и модуля pv успешно создается и связывается с заявкой. Я проверяю его в браузере, и на узлах есть 1 реплика и 1 основной постоянный том. Пока здесь нет проблем.

когда я выключаю узел модуля и перезапускаю модуль на другом узле, модуль зависает в состоянии создания контейнера. Команда Describe дает следующие результаты:

Предупреждение FailedAttachVolume 23-мая ошибка присоединения контроллера-присоединения Ошибка мульти-подключения для тома "pvc-0b2a1dbf-62e4-11e9-8b86-0800278a3f7b" Том уже используется модулями nginx, nginx-6779c9f483-10128 * 101 *

Я следую этому руководству, и модуль должен запускаться на другом узле с таким же состоянием: https://docs.storageos.com/docs/platforms/kubernetes/firstvolume/

Я проверяю эту директиву на узлах "/ var / lib / storageos / volume" и модулях и вижу тома в одном узле (который имеет постоянный том), но не вижу никаких томов на другом узле.

Я пытался:
Изменить политику возврата рекламы
Небольшая попытка с openebs, но тот же вопрос
Я пробую этот результат устранения неполадок такой же: https://docs.storageos.com/docs/platforms/kubernetes/troubleshoot/volumes#pod-in-pending-because-of-mount-error (я пробую только для докера, я не знаю, как включить MountPropagation на kubernetes)
Я пытался ждать 15-20 минут, но состояние ошибки все равно
Я пробовал с 1 ведущим и 3 подчиненными узлами результат такой же

Секрет и Кластер

apiVersion: v1
kind: Secret
metadata:
  name: "storageos-api"
  namespace: "default"
  labels:
    app: "storageos"
type: "kubernetes.io/storageos"
data:
  # echo -n '<secret>' | base64
  apiUsername: c3RvcmFnZW9z
  apiPassword: c3RvcmFnZW9z
---
apiVersion: "storageos.com/v1"
kind: "StorageOSCluster"
metadata:
  name: "example-storageos"
  namespace: "default"
spec:
  secretRefName: "storageos-api"
  secretRefNamespace: "default"
---
PVC and Pod
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mpvc
  labels:
    storageos.com/replicas: "1"
  annotations:
    volume.beta.kubernetes.io/storage-class: fast
spec:
  accessModes: [ReadWriteOnce]
  resources:
   requests:
     storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      imagePullPolicy: IfNotPresent
      securityContext:
        privileged: true
      volumeMounts:
        - mountPath: /usr/share/nginx/html/
          name: v1
  volumes:
    - name: v1
      persistentVolumeClaim:
        claimName: mpvc

The pod must start on the other node when a node fails but cannot bind the same volume on new node
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...