如何为GKE Ingress配置基于内容的健康检查?
GKE Ingress 基于内容的健康检查配置方案
你提到的基于内容的健康检查确实可以通过BackendConfig实现,只是不是用你预想的response字段,而是通过httpHealthCheck子字段来配置响应内容匹配规则,以下是具体的配置示例:
apiVersion: cloud.google.com/v1 kind: BackendConfig metadata: name: XXX-hc-config spec: healthCheck: checkIntervalSec: 15 timeoutSec: 5 port: 8080 type: HTTP requestPath: /healthz httpHealthCheck: response: # 可选:指定期望的HTTP状态码范围,默认是200-299 statusCodes: - 200 # 配置响应内容的精确匹配,对应控制台里的"响应内容匹配"选项 content: exactMatch: "OK"
关键说明:
httpHealthCheck.content.exactMatch就是用来定义健康检查需要匹配的响应文本,和你在GCP控制台中看到的设置项完全对应。- 如果需要模糊匹配,可以用
content.regexMatch指定正则表达式,比如匹配包含"OK"的响应可写regexMatch: ".*OK.*"。 - 确保你的GKE集群版本在1.20及以上,该版本之后BackendConfig才支持
httpHealthCheck下的响应内容配置。
配置完成后,记得将这个BackendConfig关联到对应的Service上(通过Service的annotations字段:cloud.google.com/backend-config: '{"default": "XXX-hc-config"}'),Ingress会自动应用这个健康检查规则。
内容的提问来源于stack exchange,提问作者raweber
相关产品推荐
相关产品推荐

