Как избежать ошибки 429 (превышена квота) при работе с Google Cloud Registry

У меня ошибка 429 в реестре контейнеров Google, слишком много изображений извлекается одновременно

Error: Status 429 trying to pull repository [...] "Quota Exceeded."

Существует кластер Kubernetes с несколькими узлами и модулями, реализующими шаги Kubeflow. В руководстве Google они предлагают следующее:

To avoid hitting the fixed quota limit, you can:
- Increase the number of IP addresses talking to Container Registry. 
  Quotas are per IP address.
- Add retries that introduce a delay. 
  For example, you could use exponential backoff.

Вопросы:

  • Как увеличить количество IP-адресов, обращающихся к Реестру контейнеров?
  • Как и где можно добавить повторные попытки, вызывающие задержку? Поды запускаются как шаги в конвейерах Kubeflow.

Обновление:

  • Именно Spinnaker отправил много запросов в GCR, поэтому это было другое приложение, которое превысило квоту и вызвало проблемы.

person Konstantin    schedule 01.06.2020    source источник
comment
Вы имели в виду ошибку 409 (тема) или статус 429 (сообщение)?   -  person Kolban    schedule 02.06.2020
comment
@ Колбан, да, 429, спасибо!   -  person Konstantin    schedule 02.06.2020


Ответы (1)


Похоже, что с ограничениями квот облачного реестра сделать ничего нельзя, потому что они фиксированные. Согласно Реестр контейнеров ›Документ› Ресурсы ›Квоты и ограничения:

Любой запрос, отправленный в Реестр контейнеров, имеет 2-часовой тайм-аут.

Фиксированные ограничения скорости для каждого IP-адреса клиента:

  • 50000 HTTP-запросов каждые 10 минут
  • 1000000 HTTP-запросов в день

Google предоставляет поддержку GKE, но сам Kubeflow не поддерживается Google. Этот вопрос следует адресовать в службу поддержки Kubeflow.

Проблема Kubeflow с нарушением лимитов квот и вопрос о том, как получить извлечение контейнера для использования большего количества IP-адресов, могут быть зарегистрированы на странице проекта в GitHub: https://github.com/kubeflow/kubeflow/issues

Другие варианты поддержки доступны здесь: https://www.kubeflow.org/docs/other-guides/support/

Если вы используете интерфейс командной строки, вы можете попробовать настроить файл конфигурации Kubeflow перед развертыванием или разделить его на отдельные развертывания, чтобы преодолеть ограничения квот облачного реестра. Такой подход помогает при некоторых сложных развертываниях. Здесь важно позаботиться о зависимостях. Первый забег

kfctl build -v -f ${CONFIG_URI}

внести изменения в файл ${KF_DIR}/kfctl_gcp_iap.yaml, а затем запустить

kfctl apply -v -f ${CONFIG_URI}
person mebius99    schedule 02.06.2020