У нас есть горизонтальный автоматический масштабатор контейнера (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 не может обрабатывать все запросы в это время и становится недоступным; Однако это не означает, что модули не будут масштабироваться. Сервис в настоящее время просто недоступен, он задержит запрос и будет отправлен снова. Успешный ответ на запросы может занять несколько минут.