Обновление Service Fabric застряло на PreUpgradeSafetyCheck
Я получил предупреждение о том, что доступна новая версия Service Fabric, однако, когда я попытался обновить ее, процесс застрял в PreUpgradeSafetyCheck на узле Rep_247. Я пробовал -Force и -ForceRestart, но это не помогло.
1 ответ
Эта проблема, вероятно, происходит, потому что сервисная структура не может безопасно отключить сервис для обновления узла или приложения.
При каждом обновлении узла службы, активированные на узле, должны сначала перейти на другой узел, чтобы узел мог быть перезапущен без ущерба для доступности приложений / служб.
В этом случае это может привести к потере кворума, когда служба не может быть размещена на другом узле, возможно, из-за того, что другой узел недоступен, или из-за ограничений размещения в службе, или существует только один экземпляр службы,
Поскольку SF не может гарантировать надежность службы, он остановит процесс обновления до тех пор, пока не будет применено решение для устранения проблемы, и процесс продолжится.
Из вашей карты кластера и сообщения возможно узнать проблему, у вашего кластера есть только один узел типа Rep_247 ReportServerType, я предполагаю, что у вас есть сервисы с ограничениями размещения, которые будут развернуты только на этом типе узла, удаление узла будет сделать эти службы недоступными, поскольку ограничения размещения не позволят им перейти на другой тип узла.
Если служба не ограничена этим типом узла, проблема может быть:
- Не удается активировать на других узлах, например, в узле отсутствуют зависимости, и у него не будет минимальной реплики.
- Служба имеет только один доступный экземпляр, и отключение сделает службу недоступной.
PS: то же самое относится к узлу MR_236 MRType
UpgradePhase PreUpgradeSafetyCheck означает, что были проблемы с подготовкой домена обновления до его выполнения. Наиболее распространенными проблемами в этом случае являются ошибки обслуживания при закрытии или понижение из основных путей кода.
Возможные решения для этого случая:
- Добавьте больше реплик \ экземпляров службы, чтобы соблюсти минимальный кворум.
- Удалите ограничения размещения службы, чтобы позволить им перемещаться на другие узлы.
- Добавьте дополнительный узел того же типа, чтобы служба могла безопасно выйти из системы.
- Снятие службы и воссоздание при обновлении узла (последний вариант, если не с сохранением состояния, в противном случае данные будут потеряны)
Вам может быть интересно увидеть связанные вопросы: