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_name
和 serverIp
消失,通过 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 支持团队
我是 运行 在 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_name
和 serverIp
消失,通过 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
尝试使用像
这样的文字 IP34.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 支持团队