Anthos Multi Cluster Ingress - 间歇性连接和消失的后端服务

Anthos Multi Cluster Ingress - intermittent connectivity and disappearing backend service

我是 运行 在 europe-west2 中设置的 2 GKE 私有集群。我有一个用于 MCI 的专用配置集群和一个用于工作负载的工作集群。两个集群都已注册到 Anthos hub,并在配置集群上启用了入口功能。此外,worker 集群运行最新的 ASM 1.12.2。

就 MCI 而言,根据可用文档(即 https://cloud.google.com/architecture/distributed-services-on-gke-private-using-anthos-service-mesh#configure-multi-cluster-ingress、terraform-example-foundation repo 等),我的部署是 'standard'。

一切正常,但无论重新部署整个堆栈多少次,我都会遇到间歇性连接问题。我的眼睛因盯着日志记录仪表板而流血。我运行出点连接

我正在探测从我的集群中提供的一些端点,大部分时间 returns 200,以下记录在 resource.type="http_load_balancer" 下:

{
httpRequest: {
 latency: "0.081658s"
 remoteIp: "20.83.144.189"
 requestMethod: "GET"
 requestSize: "360"
 requestUrl: "https://foo.bar.io/"
 responseSize: "1054"
 serverIp: "100.64.72.136"
 status: 200
 ...
}
insertId: "10mjvz4e8g0nq"
jsonPayload: {
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 statusDetails: "response_sent_by_backend"
}
...
resource: {
 labels: {
  backend_service_name: "mci-4z8mmz-80-asm-ingress-mcs-istio"
  forwarding_rule_name: "mci-4z8mmz-fws-asm-ingress-mci-istio"
  project_id: "prj-foo-bar"
  target_proxy_name: "mci-4z8mmz-asm-ingress-mci-istio"
  url_map_name: "mci-4z8mmz-asm-ingress-mci-istio"
  zone: "global"
 }
 type: "http_load_balancer"
}
severity: "INFO"
spanId: "2a986abfc69bef6f"
timestamp: "2022-02-04T15:24:14.160642Z"
...
}

在 运行dom 时间间隔内,在 1 - 5 小时之间,探测开始失败并显示 404,持续 5 - 10 分钟,并记录以下内容:

{
httpRequest: {
 ...
 requestMethod: "GET"
 ...
 requestUrl: "https://foo.bar.io/"
 ...
 status: 404
 ...
}
insertId: "10mjvz4e8g0nq"
jsonPayload: {
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 statusDetails: "internal_error"
}
...
resource: {
 labels: {
  backend_service_name: ""
  forwarding_rule_name: "mci-4z8mmz-fws-asm-ingress-mci-istio"
  project_id: "prj-foo-bar"
  target_proxy_name: "mci-4z8mmz-asm-ingress-mci-istio"
  url_map_name: "mci-4z8mmz-asm-ingress-mci-istio"
  zone: "global"
 }
 type: "http_load_balancer"
}
severity: "WARNING"
...
}

backend_service_nameserverIp 消失,通过 MCI 提供的外部 LB 开始长时间休眠。如果我在那段时间尝试访问浏览器中的端点,我会得到 404,最终 connection was closed.

我广泛搜索了日志,但找不到任何线索。

有没有人遇到过类似的问题?这可能是地区性的事情吗?我还没有尝试部署到另一个区域。

非常感谢 info/links/ideas。

编辑:

我也确认健康检查没问题,没有t运行sitions。 Pods 从未收到请求,因此 404 来自外部 lb。

我在将 HTTPS 与 MultiClusterIngress 结合使用时遇到了 same/similar 问题。

Google支持建议对注解使用文字静态IP:

networking.gke.io/static-ip: STATIC_IP_ADDRESS

尝试使用像

这样的文字 IP
34.102.201.47

而不是

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses/ADDRESS_NAME

https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-ingress#static

所述

如果问题仍未解决,请尝试联系 Google 支持团队