У узла нет доступной зоны тома в AWS EKS

Пытаюсь создать под, но получаю следующую ошибку:

Доступно 0/3 узла: 1 узел (а) не имеет доступной зоны тома.

Я попытался добавить больше громкости, но ошибка все равно осталась.

Предупреждение FailedScheduling 2s (x14 over 42s) default-scheduler Доступны 0/3 узла: 1 узел (а) не имеет доступной зоны тома, 2 узла (ов) не имеют свободных портов для запрошенных портов модуля.


person Madhurima Mishra    schedule 30.01.2019    source источник
comment
Обновите вопрос с помощью yaml-файла модуля / развертывания   -  person coolinuxoid    schedule 30.01.2019
comment
У меня точно такая же проблема. У меня очень похожая настройка в 2 учетных записях, одна в порядке, но одна получает эту ошибку (в моем случае: 0/2 узла доступны: 2 узла (ов) не имеют доступной зоны тома). См. gist.github.com/holyjak. / По теме: henryxieblogs.com / 2019/04 /, stackoverflow.com/questions/53854588/   -  person Jakub Holý    schedule 30.04.2019
comment
Кстати, это стоит прочитать kubernetes.io/docs/concepts/storage/persistent-volumes - в моем случае проблема заключается в неправильной настройке томов / создания томов.   -  person Jakub Holý    schedule 30.04.2019


Ответы (1)


Моя проблема заключалась в том, что состояние AWS EC2 Volume и Kubernetes PersistentVolume (PV) как-то рассинхронизировался / поврежден. Kubernetes полагал, что существует привязанный PV, в то время как том EC2 отображается как «доступный», а не подключенный к рабочему узлу. Обновление: том был в другом файле avail. зона, то любой из 2 узлов EC2 и, следовательно, не может быть к ним присоединен.

Решением было удалить все соответствующие ресурсы - StatefulSet, PVC (критически важный!), PV. Затем я смог apply их снова, и Kubernetes удалось создать новый том EC2 и прикрепить его к экземпляру.

Как видите, в моей конфигурации, у меня есть StatefulSet с volumeClaimTemplate (=> PersistentVolumeClaim, PVC) (и соответствует определению StorageClass), поэтому Kubernetes должен динамически подготовить том EC2, присоединить его к рабочему процессу и предоставить его как PersistentVolume.

См. kubectl get pvc, kubectl get pv и в Консоли AWS - EC2 - Volumes.

ПРИМЕЧАНИЕ. «Bound» = PV привязан к PVC. .

Вот описание трудоемкого способа восстановления StatefulSet на AWS, если у вас есть моментальный снимок тома EBS (5/2018): https://medium.com/@joatmon08/kubernetes-statefulset-recovery-from-aws-snapshots-8a6159c / ada6159c >

person Jakub Holý    schedule 02.05.2019