Проблемы при развертывании Weaviate на AKS (Azure Сервис Kubernetes) - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь развернуть Weaviate на Azure Сервис Kubernetes. Во время развертывания руля возникает проблема, когда я получаю следующее сообщение об ошибке:

Multi-Attach error for volume "pvc-69db6155-4f28-11ea-b829-b2b3d6f12b6f" Volume is already exclusively attached to one node and can't be attached to another
Unable to mount volumes for pod "esvector-master-0_weaviate(20dafc44-4f58-11ea-b829-b2b3d6f12b6f)": timeout expired waiting for volumes to attach or mount for pod "weaviate"/"esvector-master-0". list of unmounted volumes=[esvector-master]. list of unattached volumes=[esvector-master default-token-ckf7v]

Единственное, что я изменил в values.yaml - это имя класса хранения:

pvc:
  size: 2Gi
  storageClassName: default

I сделал это изменение, так как Azure не имеет установленного класса NFS. Вместо этого я использовал класс по умолчанию kubernetes, который управляет Azure Управляемыми дисками.

У кого-нибудь есть идеи, как решить эту проблему? Спасибо!

1 Ответ

1 голос
/ 03 марта 2020

Мы обновили наши документы, так как они не были заполнены вокруг топического c из etcd аварийного восстановления в таблице управления . Имея в виду обновленные документы, позвольте мне попытаться объяснить, что здесь происходит:

Нет nfs томов, требуемых по умолчанию

По умолчанию Weaviate использует постоянные тома для своих баз данных. Классы хранения для них используют значения по умолчанию, т.е. не nfs. Поэтому, когда с использованием по умолчанию values.yaml поддержки кластера nfs не требуется,

etcd Аварийное восстановление

Во время написания этого ответа один из внутренняя память для Weaviate - etcd. Мы используем bitnami etcd chart , на который ссылается Weaviate Chart , в качестве подкарты . Etcd не переживает сбой кворума узлов ( Source ). Особенно в небольшом развертывании (например, 3 или меньше модулей etcd) регулярное обслуживание Kubernetes может легко привести к катастрофическому отказу etcd. Для борьбы с этим вышеупомянутая диаграмма от Bitnami содержит режим аварийного восстановления.

Обратите внимание, что etcd.disasterRecovery.enabled по умолчанию равен false, но мы рекомендуем установить его на true в производстве ,

Развертывание поставщика nfs, если требуется аварийное восстановление etcd.

Функция аварийного восстановления etcd , являющаяся частью схемы управления bitnami etcd , требует ReadWriteMany доступ к томам снимков. Рекомендуется использовать поставщика nfs, как указано в Документах Weaviate Helm .

Почему nfs-provisioner не является частью диаграммы Weaviate?

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

  • Совокупность проблем : диаграмма Weaviate устанавливает Weaviate с целью изолировать все эффекты в одном пространстве имен. nfs-provisioner вносит изменения в кластер, которые могут быть не совсем очевидными
  • Мультитенантность : мы не можем предполагать, что в вашем кластере Kubernetes работает только один экземпляр Weaviate или даже только Weaviate экземпляров. Это может быть большой общий кластер с несколькими арендаторами. В этом случае связывание провайдера приведет к установке нескольких провайдеров, когда кластер может и должен иметь только один
  • Различные жизненные циклы приводят к циклическим зависимостям : если поставщик был связан с Weaviate стало бы невозможно удалить график Weaviate. Это связано с тем, что при удалении диаграммы Weaviate также удаляется вложенная диаграмма etcd. Последний удаляет тома nfs, используемые для моментального снимка. Однако, если бы упаковщик был частью диаграммы, он бы уже удалил, что делало кластер неспособным удалить nfs тома.

tl; dr: один раз развернуть поставщик в другом пространстве имен, разверните столько экземпляров Weaviate, сколько вам нужно, в отдельных пространствах имен. Это позволяет избежать различий в жизненном цикле, проблем с несколькими арендаторами и циклическими зависимостями.

...