GKE 中可抢占节点上的 Pod 年龄大于节点年龄

GKE 中可抢占节点上的 Pod 年龄大于节点年龄

我们正在运行一个 Google Kubernetes Engine 集群,其中所有节点都标记为“可抢占”。从Google 文档

可抢占虚拟机是 Compute Engine 虚拟机实例,最长可持续 24 小时,并且不提供可用性保证。

然而,当我查看在其中一个节点上运行的 pod 时,我看到了以下内容:

NAME              READY   STATUS    RESTARTS   AGE
mypod-dev-0       3/3     Running   0          20h
mypod-dev-1       3/3     Running   0          26h

请注意,mypod-dev-1 的年龄已超过 24 小时。使用pod describemypod-dev-1 时,我看到所有容器都是在今天早上 07:08(大约 3 小时前)启动的。

转到 mypod-dev-1 正在运行的节点,当我查看节点详细信息时,我看到一些非常令人困惑的事情。首先,创建时间是 24 小时前(当前时间 2019 年 12 月 20 日上午 10:00):

CreationTimestamp:  Thu, 19 Dec 2019 06:55:26 -0800

接下来,有一堆“条件”消息表明该节点最近被重新创建:

Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                     Message
NetworkUnavailable   False   Thu, 19 Dec 2019 06:55:26 -0800   Thu, 19 Dec 2019 06:55:26 -0800   RouteCreated               NodeController create implicit route
KernelDeadlock       False   Fri, 20 Dec 2019 10:03:00 -0800   Fri, 20 Dec 2019 07:07:21 -0800   KernelHasNoDeadlock        kernel has no deadlock
ReadonlyFilesystem   False   Fri, 20 Dec 2019 10:03:00 -0800   Fri, 20 Dec 2019 07:07:21 -0800   FilesystemIsNotReadOnly    Filesystem is not read-only
... 

看起来 mypod-dev-1 的所有容器都在同一时间(上午 7:08)重新启动,节点出现了问题。

  1. 如何确定节点的创建时间?

  2. 为什么 pod 时间显示的年龄比节点的可抢占特性所允许的时间要长?

  3. 是否有一些日志显示 pod 何时从一个节点迁移到另一个节点?

答案1

您说得对,我能够重现此错误。此外,我还在问题跟踪器上发现了一个未解决的问题(https://issuetracker.google.com/146928126) 对此表示怀疑。看来这是 Google 需要解决的问题。

相关内容