Назад | Перейти на главную страницу

K8S HPA custom Stackdriver - 503 Услуга в настоящее время недоступна - избегает масштабирования

У нас есть горизонтальный автоматический масштабатор контейнера (HPA) установлен на кластер gke, в большинстве случаев автоматический масштабатор работает отлично. но временами (в основном в часы пик для наших клиентов) автоматический скейлер получает код ошибки 503 из драйвера стека.

вот ошибки, с которыми мы сталкиваемся:

Failed request to stackdriver api: googleapi: Error 503: The service is currently unavailable., backendError

и

"apiserver received an error that is not an metav1.Status: &googleapi.Error{Code:503, Message:"The service is currently unavailable.", Body:"{\n  \"error\": {\n    \"code\": 503,\n    \"message\": \"The service is currently unavailable.\",\n    \"errors\": [\n      {\n        \"message\": \"The service is currently unavailable.\",\n        \"domain\": \"global\",\n        \"reason\": \"backendError\"\n      }\n    ],\n    \"status\": \"UNAVAILABLE\"\n  }\n}\n", Header:http.Header(nil), Errors:[]googleapi.ErrorItem{googleapi.ErrorItem{Reason:"backendError", Message:"The service is currently unavailable."}}}" 

Теперь я немного озадачен; Google рекомендует использовать stackdriver в качестве источника HPA (https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscaling), но если он недоступен на 100% или не является отказоустойчивым - кластер просто сломан, так как модули не масштабируются, а ресурсы истощаются.

Кто-нибудь знает, как здесь работать?

Это ошибка API, и вы видите эту ошибку только в часы пик (когда вы делаете так много запросов к Stackdriver API). Поскольку это происходит в часы пик, API не может обрабатывать все запросы в это время и становится недоступным; Однако это не означает, что модули не будут масштабироваться. Сервис в настоящее время просто недоступен, он задержит запрос и будет отправлен снова. Успешный ответ на запросы может занять несколько минут.