1

我正在运行在 europe-west2 中设置的 2 GKE 私有集群。我有一个用于 MCI 的专用配置集群和一个用于工作负载的工作集群。两个集群都注册到 Anthos 中心,并且在配置集群上启用了入口功能。此外,工作集群运行最新的 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 等)。

一切正常,但无论我重新部署整个堆栈多少次,我都会遇到间歇性连接问题。盯着记录仪表板我的眼睛在流血。我用完了点来连接。

我正在探测从我的集群中提供的一些端点,这些端点大部分时间返回 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"
...
}

以随机间隔,在 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_name然后serverIp消失,通过 MCI 提供的外部 LB 进行长时间的小睡。如果我在此期间尝试在浏览器中访问端点,我会得到 404 并最终得到connection was closed.

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

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

非常感谢任何信息/链接/想法。

编辑:

我还确认健康检查很好,没有过渡。Pod 永远不会收到请求,因此 404 来自外部 lb。

4

1 回答 1

1

将 HTTPS 与 MultiClusterIngress 一起使用时,我遇到了相同/类似的问题。

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 支持

于 2022-02-05T13:42:54.080 回答