Устранение ошибки Multi-Attach error for volume
Описание проблемы
При попытке использовать persistent volume
на нескольких подах одновременно возникют ошибки вида:
Multi-Attach error for volume "<volume-name>" Volume is already used by pod(s) <pod1>, <pod2>
;Multi-Attach error for volume "<volume-name>" Volume is already exclusively attached to one node and can't be attached to another
.
Решение
По умолчанию с кластером поставляются классы хранилищ, которые основаны на сетевых дисках, и они не поддерживают режим множественного доступа. Подробнее об этом пишем в документации Managed Service for Kubernetes. Это ограничения нашего драйвера
Также такие ошибки могут появляться, если поды, которые должны использовать volume
, находятся на разных узлах
При необходимости использовать ReadWriteMany
, рекомендуем воспользоваться CSI для нашего объектного хранилища, потому что тома на его основе поддерживают такой режим доступа. Ручная установка описана здесь.
Если проблема осталась
Если вышеописанные действия не помогли решить проблему, то можно организовать хранилище самостоятельно. Некоторые из возможных решений, например nfs или CEPH, поддерживают множественный доступ. Подробнее можно прочесть в официальной документации Kubernetes