【发布时间】:2020-02-18 20:58:27
【问题描述】:
我在 Google Cloud 上运行 Kubernetes 集群(版本 1.13.7-gke.24)。相同的代码在机器上运行了3个多月没有任何问题。今天我发现其中一个 Pod 与网络断开连接超过 24 小时。
首先我检查了 pod 是否有互联网连接,通常它有。我使用curl 查询了一些知名的互联网网站 - 所有这些网站都遥不可及。当我尝试运行 apt-get update 或 apt-get upgrade 时发生了同样的事情。
其次,我检查了我的应用程序的日志,发现异常如下:
Unable to log to provider GoogleStackdriverLogProvider, ex: Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Connect Failed")
at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass0_0`2.<<WithRetry>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at ***.LogService.Providers.GoogleStackdriverLogProvider.WriteAsync(IEnumerable`1 entries) in LogService/Providers/GoogleStackdriverLogProvider.cs:line 71
这些日志来自我运行的将新日志发送到 Google Stackdriver 的代码。请注意,那些日志存储在同一个数据中心 - 无需互联网将它们发送出去,应用程序仍然无法到达目的地。
最后,这很奇怪,与队列系统的连接一直在运行。不幸的是,应用程序继续从队列中下载新消息,但由于网络连接,所有消息都以失败告终。
总结:
Internet connectivity - NO
VPC connectivity - YES
GCP services connectivity - YES
其他说明:
- 我能够
ssh进入有问题的 pod。 - 重新启动 pod 解决了这个问题。
- 以前从未发生过。我运行这个部署已经一年多了。
- 当我杀死它时,有问题的 pod 已经 4 天半了。
- 只有一个 pod 受到此问题的影响。所有其他(100 多个 pod)都在运行,没有任何问题。
为了防止这个问题进一步发生,应该怎么做?
【问题讨论】:
标签: kubernetes google-cloud-platform google-kubernetes-engine