首页 > 解决方案 > 资源版本太旧:

问题描述

我正在将我们的服务从 eks1.14 迁移到 eks1.18 集群。我在我们的一些部署中看到了很多错误。

有人可以告诉我,我该如何解决这个错误?

May 19th 2021, 10:56:30.297 io.fabric8.kubernetes.client.KubernetesClientException: too old resource version: 13899376 (13911551)
    at io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager$1.onMessage(WatchConnectionManager.java:259)
    at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.java:323)
    at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.java:219)
    at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:105)
    at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:274)
    at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:214)

标签: kubernetesamazon-eks

解决方案


这是 Kubernetes 的标准行为。当您要求查看resourceVersion太旧版本的更改时 - 即当它不再告诉您自该版本以来发生了什么变化时,因为太多的事情发生了变化。因此,您应该避免一次升级多个版本。尝试将您的集群从 1.14 更新到 1.15,然后从 1.15 更新到 1.16,依此类推。您还可以在此处阅读有关非常相似的问题的更多信息。在那里,您可以找到解决问题的另一种方法。

在Amazon EKS的文档中,我们可以找到:

kubelet如果您的任何 AWS Fargate pod 的次要版本早于 1.16 ,则将集群从 1.16 更新到 1.17 将失败。在将集群从 1.16 更新到 1.17 之前,您需要kubelet在尝试将集群更新到 1.17 之前回收 Fargate pod 以使其为 1.16。

基于此示例和大量依赖项,逐个版本升级集群版本是个好主意。


推荐阅读