kubernetes - 资源版本太旧:
问题描述
我正在将我们的服务从 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)
解决方案
这是 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。
基于此示例和大量依赖项,逐个版本升级集群版本是个好主意。
推荐阅读
- python-3.x - 如何附加更改数字格式的文本?
- continuous-integration - Cake:如何从 MSpec 中获取结果
- angular - 单元测试角度HttpInterceptor重试
- java - 在数据库中存储 Java 类并加载它 使用它 销毁它
- java - 使用多线程处理子目录中的文件
- javascript - 在 $http.post 方法中复制数组
- java - 奇怪的行为 Datediff java Datediff sql
- react-native - 来自 ReactNative App 部分的关于蓝牙的 Android/IOS 库
- python - 我如何使用带有条形图的点击工具-散景
- sql - 修复 dbtimestamp 转换错误