модули k8s не могут повторить попытку при тайм-ауте подключения тома

#kubernetes #kubernetes-pod #kubernetes-pvc

#kubernetes #модуль kubernetes-pod #kubernetes-pvc

Вопрос:

Иногда у меня есть куча заданий для запуска, и каждое из них монтирует pvc. Поскольку наш ресурс ограничен, некоторые модули не монтируются менее чем за одну минуту.

Невозможно подключить тома для модуля «package-job-120348968617328640-5gv7s_vname (b059856a-ecfa-11ea-a226-fa163e205547)»: истек тайм-аут ожидания подключения или монтирования томов для модуля «vname»/ «package-job-120348968617328640-5gv7s». список размонтированных томов =[tmp]. список незакрепленных томов =[log tmp].

И он обязательно повторяет попытку. Но это никогда не увенчается успехом (возраст события похож 44s (x11 over 23m) ). Но если я удалю этот модуль, это задание создаст новый модуль, и оно завершится.

Итак, почему это происходит? Разве модуль не должен повторять попытку автоматического монтирования вместо ручного вмешательства? И если этого нельзя избежать, есть ли обходной путь, позволяющий автоматически удалять модули на этапе инициализации более 2 минут?

Заключение

На самом деле сценарий подключения, предоставленный моим облачным провайдером, на некоторых узлах зависает (вызвано сетевой проблемой). Поэтому, если другие сталкиваются с этой проблемой, возможно, хорошей идеей является проверка плагина хранилища, который подключает диски.

Ответ №1:

Итак, почему это происходит? Разве модуль не должен повторять попытку автоматического монтирования вместо ручного вмешательства? И если этого нельзя избежать, есть ли обходной путь, позволяющий автоматически удалять модули на этапе инициализации более 2 минут?

Этому может быть несколько причин. Есть ли у вас какие-либо события в модуле, если вы это сделаете kubectl describe pod <podname> ? И используете ли вы повторно PVC, который ранее использовался другим модулем?

Я предполагаю, что вы используете региональный кластер, состоящий из нескольких центров обработки данных (зон доступности), и что ваш PVC расположен в одном AZ, но ваш модуль запланирован для запуска в другом AZ? В такой ситуации модуль никогда не сможет смонтировать том, поскольку он находится в другом AZ.

Комментарии:

1. Есть только одно событие, и я повторно использовал PVC, и я проверил, что у нас есть только один AZ (я очень надеюсь, что это причина, но это не так

2. Какую систему хранения вы используете? Подключены ли диски к узлам напрямую, чтобы модули на других узлах не могли их использовать?

3. Спасибо за ваши советы, в следующий раз, когда возникнет эта проблема, я посмотрю, будут ли новые модули привязаны к тому же узлу, что и старый, но все равно успешно.

4. Или два модуля используют один и тот же PVC одновременно? Если вы используете режим доступа ReadWriteOnce, том может быть смонтирован только на одном узле одновременно.

5. Нет, есть только один модуль.

Ответ №2:

У меня была такая же проблема, когда даже том, подключенный к тому же узлу, на котором запущен модуль.

Я подключился к узлу по ssh и перезапустился kubelet , после чего проблема была устранена.