我们有一个水平 Pod 自动扩缩器 (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."}}}"
现在我有点困惑;谷歌鼓励使用 stackdriver 作为 HPA 的来源(https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscaling),但如果它不是 100% 可用或容错 - 集群就会损坏,因为 pod 无法扩大规模,并且资源会被耗尽。
有人知道这里该如何解决吗?
答案1
这是一个 API 错误,您只会在高峰时段(当您向 Stackdriver API 发出大量请求时)看到此错误。由于它发生在高峰时段,API 无法处理当时的所有请求并变得不可用;但是,这并不意味着 pod 不会扩展。该服务目前只是不可用,它将保留请求并再次发送。可能需要几分钟才能成功响应请求。