Google-Cloud-Platform

損壞的 GKE 後端執行狀況檢查預設值

  • February 11, 2022

我已經閱讀了這篇文章,並且我理解(我認為)Kubernetes livenessProbes 和 GKE LoadBalancer 健康檢查之間的區別。

我的問題是:我通過 NodePort 公開我的大部分 Kube 服務,預設情況下它會在 GKE 中創建一個新的後端服務,並且還會在 GKE 中創建一個與該後端 HTTP 服務相對應的負載均衡器健康檢查。

所有這些自動創建的健康檢查都假設我在 / 上有一個 HTTP 狀態端點,而我沒有。我有一個託管在不同端點上的 HTTP 執行狀況檢查。

我如何

A) 以某種方式提示 GKE 根據 Kubernetes 資源中定義的規則創建負載均衡器規則,而不是盲目地創建一堆監聽錯誤路由的規則,或者

B) 讓 GKE 不會自動為每個 NodePort 服務創建無效的健康檢查。

或者這只是一個不靈活的Google云怪癖,我必須更改程式碼才能解決?

發現答案是

B. 沒有

通過閱讀Kubernetes Ingress Github README.MD

“..目前我們只依賴 kubernetes 服務/pod 活躍度探測,並強制 pod 有一個 / 端點,該端點以 200 響應 GCE。”

今天,您可以使用 backendconfigs 配置這些。backendConfig 用於配置入口如何與服務對話,包括告訴它如何進行健康檢查。

您需要配置服務以使用 BackendConfig

apiVersion: v1
kind: Service
metadata:
 annotations:
   cloud.google.com/backend-config: '{"default": "my-backendconfig"}'
...

然後你可以直接在 backendconfig 中配置健康檢查

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
 name: my-backendconfig
spec:
 healthCheck:
   checkIntervalSec: INTERVAL
   timeoutSec: TIMEOUT
   healthyThreshold: HEALTH_THRESHOLD
   unhealthyThreshold: UNHEALTHY_THRESHOLD
   type: PROTOCOL
   requestPath: PATH
   port: PORT

引用自:https://serverfault.com/questions/869179