OpenShift Online Next Gen Невозможно смонтировать тома для модуля

Я пытаюсь использовать обычный том постоянного хранилища EBS в OpenShift Online Next Gen и получаю следующую ошибку при попытке развернуть:

    Unable to mount volumes for pod "production-5-vpxpw_instanttabletop(d784f054-a66b-11e7-a41e-0ab8769191d3)": timeout expired waiting for volumes to attach/mount for pod "instanttabletop"/"production-5-vpxpw". list of unattached/unmounted volumes=[volume-mondv]

За ними (через некоторое время) последовали несколько экземпляров:

    Failed to attach volume "pvc-702876a2-a663-11e7-8348-0a69cdf75e6f" on node "ip-172-31-61-152.us-west-2.compute.internal" with: Error attaching EBS volume "vol-0fb5515c87914b844" to instance "i-08d3313801027fbc3": VolumeInUse: vol-0fb5515c87914b844 is already attached to an instance status code: 400, request id: 54dd24cc-6ab0-434d-85c3-f0f063e73099

Журнал модуля развертывания после истечения времени ожидания выглядит следующим образом:

    --> Scaling production-5 to 1
    --> Waiting up to 10m0s for pods in rc production-5 to become ready
    W1001 05:53:28.496345       1 reflector.go:323] github.com/openshift/origin/pkg/deploy/strategy/support/lifecycle.go:509: watch of *api.Pod ended with: too old resource version: 1455045195 (1455062250)
    error: update acceptor rejected production-5: pods for rc "production-5" took longer than 600 seconds to become ready

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

В первый раз все развернулось и работало нормально, но с тех пор мне не удавалось успешно развернуть его.

Может ли кто-нибудь пролить свет на то, что я здесь делаю не так?

Обновление №1:

В качестве дополнительной морщинки, иногда, когда я развертываю, требуется много времени, чтобы развернуть модули развертывания для этого (на самом деле я не знаю, сколько времени это должно, но я получаю предупреждение предполагая, что все идет медленно, и мое текущее развертывание сидит через 15+ минут, не вставая).

В списке событий модуля развертывания я вижу несколько экземпляров каждого из Error syncing pod и Pod sandbox changed, it will be killed and re-created., пока я жду, ничего не коснувшись.

Не происходит каждый раз, и я не заметил закономерности.

Не уверен, что это вообще связано, но, похоже, стоит упомянуть.

Обновление №2:

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

Насколько мне известно, я не вносил никаких изменений, поэтому не понимаю, в чем проблема. Я сделаю дополнительную информацию о том, повторяется ли проблема.

Обновление №3

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

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

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

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

Обновление №4

Список текущих проблем OpenShift не изменился, но теперь кажется, что все загружается правильно, поэтому отметьте это как решенное и переходите к другим вещам.

Для потомков изменение с Rolling на Recreate является ключевым моментом, и даже в этом случае вам может потребоваться вручную убить старый модуль, если он застревает, пытаясь корректно завершить работу.


person Dashiel N    schedule 01.10.2017    source источник


Ответы (2)


Вы не можете использовать постоянный том в OpenShift Online с приложением, для которого задана стратегия развертывания «Rolling». Измените конфигурацию развертывания и убедитесь, что для стратегии развертывания установлено значение «Повторное создание».

Вы заявляете, что использовали слово «заменить». Если вы установите это, отредактировав JSON / YAML конфигурации развертывания, изменение значения было бы отклонено, поскольку «заменить» не является допустимым вариантом.

person Graham Dumpleton    schedule 01.10.2017
comment
Прости за это. Recreate - это то, что я установил. Отредактировал первый пост. - person Dashiel N; 01.10.2017
comment
В какой среде OpenShift Online вы находитесь? Стартер, профи? Какой экземпляр? Или ваша собственная установка OpenShift? - person Graham Dumpleton; 01.10.2017
comment
Я использую OpenShift Online Starter на западе США 2. Обратите внимание, что был достигнут некоторый прогресс, но, честно говоря, я больше, чем когда-либо, сбит с толку, что с этим происходит - проблемы, которые уходят сами по себе, заставляют меня беспокоиться, что они вернутся. так же легко, хех. Больше информации добавлено в первый пост. - person Dashiel N; 02.10.2017
comment
В этой среде возникли проблемы. Статус можно увидеть на странице status.starter.openshift.com. Веб-консоль также сообщает вам в правом верхнем углу, если любые открытые проблемы с окружающей средой. - person Graham Dumpleton; 02.10.2017
comment
Вчера вечером я видел сообщение о проблеме, но, судя по приведенной там информации, было похоже, что это были проблемы только с созданием новых приложений для людей, поэтому я не думал, что это имеет отношение к проблемам, которые у меня возникли. Я неправильно понимаю, какие есть текущие проблемы? - person Dashiel N; 02.10.2017
comment
Это никогда не бывает так просто. При определенных проблемах это может фактически повлиять на различные аспекты развертывания приложений. Итак, любое изменение в приложении, будь то новое приложение или повторное развертывание. Поэтому я бы сказал, что описание, вероятно, должно быть шире и сказать, что новые приложения и повторные развертывания не слишком большая разница. - person Graham Dumpleton; 02.10.2017
comment
Попался. Похоже, мне следует подождать, пока это прояснится. Спасибо за объяснение! - person Dashiel N; 02.10.2017
comment
Быстрый последующий вопрос: следует ли мне дождаться устранения этих проблем, прежде чем спрашивать о других проблемах с подключением к приложению (когда сервер действительно запущен и работает), или они, вероятно, не связаны? - person Dashiel N; 02.10.2017
comment
Если вы получаете интерактивную оболочку в контейнере с помощью oc rsh или веб-консоли, можете ли вы сделать curl $HOSTNAME:8080? Были некоторые проблемы с маршрутизацией с us-east-1, которые они пытаются решить, но не знают о других кластерах, имеющих такую ​​же проблему. Другие проблемы в us-west-1 также могут повлиять на настройку маршрута, если они связаны с хранилищем данных для конфигурации кластера. - person Graham Dumpleton; 02.10.2017
comment
curl $HOSTNAME:8080 в терминале в консоли, как и ожидалось, выплюнул источник страницы, но проблема, с которой я столкнулся с загрузкой страницы, более прерывистая - 503-е или просто пустые ответы на разных ресурсах от одной загрузки страницы до другой. Один раз загружается нормально, в следующий - нет. Добавлено ведение журнала, и запросы на недостающие активы никогда не попадают на сервер. (Проблема с веб-сокетом - это совсем другое дело, если только она случайно не сработала с кучей попыток.) - person Dashiel N; 02.10.2017
comment
А у вас только одна реплика? Проблемы с платформой могут также влиять на маршрутизацию, или отдельная проблема маршрутизации, которая затрагивала us-east-1, теперь может влиять на us-west-1. - person Graham Dumpleton; 02.10.2017
comment
Верный. Всего одна реплика. - person Dashiel N; 02.10.2017
comment
Я собираюсь отметить это как ответ - хотя кажется, что большинство моих трудностей, вероятно, были вызваны проблемами, с которыми сталкивается OpenShift, это был бы ключевой шаг, так что можно было бы также выделить его для будущих людей с той же проблемой. - person Dashiel N; 07.10.2017
comment
@DashielN Я могу подтвердить, что OpenShift-3 очень ненадежен (по сравнению с прежним OpenShift-2) в смысле правильной работы: даже без каких-либо изменений в правильных настройках, поды могут время от времени не запускаться, монтировать тома и т. Д. остановки / перезагрузки не помогают. Только служба поддержки может исправить такие проблемы, но это может занять некоторое время. - person Stan; 21.12.2017
comment
@Stan Если вы делаете эти комментарии в отношении OpenShift Online, имейте в виду, что среда теперь стабилизирована, и вы не должны видеть проблемы, которые возникали ранее. Так что ваш комментарий, скорее всего, больше не применим. Если вы какое-то время не пробовали, попробуйте еще раз. - person Graham Dumpleton; 21.12.2017
comment
@GrahamDumpleton Я говорю о проблемах, с которыми я сталкивался несколько раз за последние месяцы, последний раз пару дней назад. - person Stan; 22.12.2017
comment
Единственный кластер, который отмечен как имеющий какие-либо недавние проблемы, - это us-west-1, который был 4 дня назад. Если у вас возникли проблемы и вы уверены, что это не потому, что вам не удалось переключиться на стратегию развертывания Recreate и вы не пытаетесь масштабировать приложение с помощью хранилища, вы можете сообщить о них по адресу help.openshift.com/forms/community-contact.html - person Graham Dumpleton; 22.12.2017
comment
Это моя проблема, но я смущен тем, что ограничение есть только у OpenShift Online? Или k8s не предназначен для развертывания в сочетании с пвх и скользящим обновлением? - person Tokenyet; 31.12.2019
comment
Любой многоузловой кластер Kubernetes будет иметь проблемы с последовательным развертыванием, если все настройки обеспечивают постоянный том типа ReadWriteOnce (RWO). Вам необходимо иметь доступ ReadWriteMany (RWX), чтобы иметь возможность выполнять скользящие развертывания с подключенным постоянным томом. - person Graham Dumpleton; 01.01.2020

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

VolumeInUse: vol-0fb5515c87914b844 is already attached to an instance status code: 400, request id: 54dd24cc-6ab0-434d-85c3-f0f063e73099

Вы должны выполнить очистку одним из следующих способов:

1) Отключите том от запущенного экземпляра и снова подключите. Будьте осторожны с данными, потому что жизненный цикл тома EBS ограничен жизненным циклом пода.

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

person Gyanendra Dwivedi    schedule 01.10.2017
comment
Это было первое, что я попробовал - полностью очистить список модулей. Нет других запущенных модулей, с которыми он мог бы конфликтовать, если только модуль развертывания не является каким-то образом проблемой (и он вообще не упоминает рассматриваемый том в своей информации, поэтому я не понимаю, почему это могло бы быть). Есть что-то еще, что я должен убить, о чем я не думаю? - person Dashiel N; 01.10.2017
comment
Проверьте меню хранилища, чтобы узнать, с каким экземпляром связано ваше хранилище. Он должен дать вам представление о том, от чего его нужно отсоединить? - person Gyanendra Dwivedi; 01.10.2017
comment
Извините за тупость, но когда вы говорите здесь «экземпляр», что вы имеете в виду? На самом деле ничего в консоли так не называется, и я хочу быть уверен, что правильно вас понимаю. - person Dashiel N; 01.10.2017
comment
Единственная информация, которую я вижу в информации о хранилище, - это идентификатор тома, к которому он привязан. Здесь ничего не говорится о привязке к определенному модулю. - person Dashiel N; 01.10.2017
comment
instances означал openshift deployments. Извините, это слово больше связано с AWS, на котором построен openshift. В разделе хранилища запишите поле имени. Перейдите к развертываниям, щелкните каждое из них. Проверьте вкладку конфигурации, прочтите разделы ... везде, где это применимо, будет раздел, в котором упоминается используемый объем хранилища. Имя тома должно совпадать с именем, указанным ранее. - person Gyanendra Dwivedi; 01.10.2017
comment
Спасибо за пояснение - чтобы уточнить, имеете ли вы в виду элемент из списка именованных развертываний или из списка пронумерованных попыток развертывания (который также просто помечен как развертывания, для дополнительной путаницы) в именованном развертывании? У меня есть только один из первых, и очистка списка последних не решает проблему (при удалении самого последнего он просто автоматически развертывается снова с описанными проблемами). - person Dashiel N; 01.10.2017
comment
Вам не нужно переходить к нумерованному развертыванию. Просто нажмите на развертывание, и там должна появиться вкладка истории, рядом с которой есть вкладка конфигурации. Проверьте эту конфигурацию и запишите, сколько развертываний имеют хранилище, связанное с тем же именем, как указано ранее. Вы должны использовать один и тот же том в двух разных развертываниях или достичь предела квоты. - person Gyanendra Dwivedi; 01.10.2017
comment
У меня только одно развертывание (такое же, которое я пытаюсь развернуть), и оно подключено к этому тому хранилища. На этом пути было несколько предыдущих развертываний, но я удалил их в своих собственных попытках решить эту проблему. Возможно, они каким-то образом не выпустили вложение при удалении? - person Dashiel N; 01.10.2017
comment
Попробуйте полностью удалить это развертывание, чтобы не осталось развертываний, затем щелкните верхнюю ссылку add to project и выберите 2-й вариант (развернуть образ). В меню по умолчанию выберите переключатель и выберите развертывание. Если он развертывается успешно, это означает, что ни одно из ваших предыдущих развертываний не заблокировало хранилище. - person Gyanendra Dwivedi; 01.10.2017
comment
Никаких кубиков при таком подходе тоже не похоже. (И позвольте мне сказать, спасибо, что были со мной в этом!) - person Dashiel N; 01.10.2017