У меня есть проект с 4 компонентами, и для каждого компонента настроен хостинг в Google Cloud Run, отдельные развертывания для тестирования и для производства. Я также использую Google Cloud Build для сборки и развертывания компонентов.
Из-за отсутствия хороших событий веб-перехватчика из исходной системы я в настоящее время вынужден запускать перестройку всех компонентов в проекте каждый раз, когда появляется новое изменение. В проекте это означает 8 разных образов для сборки и развертывания, поскольку для тестирования и производства также используются разные настройки времени сборки.
Мне удалось оптимизировать Cloud Build для довольно хорошей обработки 8 параллельных сборок, но все они завершаются примерно в одно и то же время, а затем все 8 отправляются в Cloud Run. Часто кажется, что Cloud Run это совсем не нравится, и он начинает выдавать мне некоторые ошибки, которые я не смог исправить.
Первое и более серьезное заключается в том, что часто около 4-6 из 8 развертываний выполняются, как ожидалось, а остальные либо значительно задерживаются, либо просто терпят неудачу, часто так что первые несколько проходят нормально, затем несколько - со значительными задержками и финальные 1-2 просто проваливаются. Похоже, это вызвано тем, что некоторая «квота запросов на согласование» исчерпана в регионе (в данном случае europe-north1
), так как это ошибка, которую я вижу в верхней части службы Cloud Run -view:
Вдобавок, что в основном раздражает, сама панель управления Cloud Run, похоже, не справляется с развертыванием 8 служб, поскольку просто нахождение в представлении панели управления со списком служб регулярно вызывает у меня еще одну ошибку, связанную с некоторыми квотами чтения: < / а>
Я попытался связаться с Google с помощью рекомендованной ими кнопки «Отправить отзыв», но не получил ответа в течение ~ 1 недели + (кто знает, когда я его отправил, потому что они, похоже, не подтверждают получение).
Один из вариантов, который я могу сделать, чтобы попытаться улучшить ситуацию, - это развернуть «тестовый» и «рабочий» варианты в разных регионах, однако это было бы менее чем оптимальным, и похоже, что это простая конфигурация где-то с ограничениями. Могу ли я рассмотреть другие варианты? Или мне просто попытаться настроить на них некоторую синхронизацию, чтобы не все развертывания запускались одновременно?
Оптимизация необходимости создания и развертывания всех компонентов одновременно в этом случае не является вариантом, поскольку у них также есть некоторый общий код, и когда это изменится, все равно будет необходимо поддерживать это.
gcloud run deploy <service> --image <gcrRepository>:<tag> --region europe-north1 --platform managed --allow-unauthenticated
- person Janne Enberg   schedule 22.05.2020