在Ambassador Ingress中,可以通过设置'health_checks”属性来检查后端服务是否可用。默认情况下,如果检查失败,Ambassador会使用Kubernetes API将Pod标记为不可用。然而,这种方式并不总是起作用,特别是当你使用外部负载均衡器时。如果你需要在宿主终止(host termination)时终止Pod,你需要修改'health_checks”属性,并设置其为定制化'ShellCheck”。这种检查方式会执行一个脚本,当脚本返回非零退出状态码时,Pod会被标记为不可用,并在宿主终止时终止。
以下是一个示例配置:
apiVersion: getambassador.io/v1 kind: Mapping metadata: name: my-service spec: prefix: /my-service/ service: my-service:80 host_rewrite: my-service.example.com resolver: endpoints load_balancer: policy: ring_hash health_checks: - script: inline: | #!/usr/bin/env sh
nc -z localhost 80
在这个示例中,我们使用'nc”命令来检查my-service Pod是否正在侦听80端口。如果侦听成功,检查将返回0,Pod将被认为是'正常”的,否则,将返回非零退出状态码,并在宿主终止时终止Pod。
上一篇:AmbassadorEdgeStackJWTFilter与Okta令牌不起作用。
下一篇:Ambassador中envoy_cluster_upstream_cx_destroy_local_with_active_rq的用途是什么?