Kubernetes 资源版本太旧

2023-11-27

我正在开发一个为不同 k8s 资源创建监视的操作员。我时不时地可以在日志中看到以下异常,并且应用程序停止。是什么导致了这个问题?我该如何解决这个问题?

io.fabric8.kubernetes.client.KubernetesClientException: too old resource version: 29309228 (33284573)
    at [email protected]/io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager$1.onMessage(WatchConnectionManager.java:263)
    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)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)

我来自 Fabric8 Kubernetes 客户端团队。我认为 Kubernetes 在观察一段时间后给出 410 是标准行为。通常由客户负责处理。在手表的上下文中,它将返回HTTP_GONE当您要求查看某个更改时resourceVersion那太旧了 - 即当它无法再告诉您自该版本以来发生了什么变化时,因为太多的事情已经发生了变化。在这种情况下,您需要重新开始,不指定resourceVersion在这种情况下,手表会向您发送您正在观看的事物的当前状态,然后从该点发送更新。

Fabric8 无法用普通手表来处理它。但它正在处理它SharedInformerAPI,参见反射观察者。我建议在编写运算符时使用 informer API,因为它比普通列表和监视更好。这是一个简单的使用示例SharedInformer API:

try (KubernetesClient client = new DefaultKubernetesClient()) {
  SharedInformerFactory sharedInformerFactory = client.informers();
  SharedIndexInformer<Pod> podInformer = sharedInformerFactory.sharedIndexInformerFor(Pod.class, PodList.class, 30 * 1000L);
  podInformer.addEventHandler(new ResourceEventHandler<Pod>() {
    @Override
    public void onAdd(Pod pod) {
      // Handle Creation
    }

    @Override
    public void onUpdate(Pod oldPod, Pod newPod) {
      // Handle update
    }

    @Override
    public void onDelete(Pod pod, boolean deletedFinalStateUnknown) {
      // Handle deletion
    }
  });
  sharedInformerFactory.startAllRegisteredInformers();
}

您可以在此处找到使用 Fabric8 SharedInformer API 的简单运算符的完整演示:Java 中的 PodSet 运算符

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes 资源版本太旧 的相关文章

  • Java Swing BoxLayout 忽略 AlignmentX

    在下面的代码中 通过调用setAlignmentX with Component LEFT ALIGNMENT我希望在居中的滑块上获得左对齐的标签 由于某种原因 标签也居中 似乎与传递给 setAlignmentX 的值无关 我必须向 se
  • Android Toast 消息不起作用

    我正在通过 Andengine 为 Android 开发游戏 我有 MainActivity 类和 GameScene 类 我在 GameActivity 中使用 Toast 消息 它正在发挥作用 Toast makeText this H
  • Java,顺序流在哪个线程中执行?

    在阅读有关流的文档时 我遇到了以下句子 attempting to access mutable state from behavioral parameters presents you with a bad choice if you
  • 是否可以使用 Java 读写 Parquet,而不依赖 Hadoop 和 HDFS?

    我一直在寻找这个问题的解决方案 在我看来 如果不引入对 HDFS 和 Hadoop 的依赖 就无法在 Java 程序中嵌入读写 Parquet 格式 它是否正确 我想在 Hadoop 集群之外的客户端计算机上进行读写 我开始对 Apache
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • 在 Eclipse 3.5 上安装旧版 TestNG 插件时出现问题

    我正在尝试在 eclipse 3 5 上安装 TestNG 5 11 并获得以下信息 eclipse buildId unknown java version 1 6 0 19 java vendor Sun Microsystems In
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 膨胀类 android.support.design.widget.NavigationView 时出错

    我按照 NavigationView 的教程进行操作 但无法解决此错误消息 Error inflating class android support design widget NavigationView 教程链接 https www
  • JERSEY:错误跟踪:java.lang.IllegalStateException:实体输入流已关闭

    我正在使用 Jersey 2 x 以下是我的控制器 GET Path id Produces application json public Response getUser PathParam id int userId Context
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • 如何在 spring-data 中强制使用 CrudRepository 进行预加载?

    我有一个实体 其中包含List就是这样lazy默认加载 interface MyEntityRepository extends CrudRepository
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 我怎样才能限定我不“拥有”的自动装配设置器

    要点是 Spring Batch v2 测试框架具有JobLauncherTestUtils setJob与 Autowired注解 我们的测试套件有多个Job类提供者 由于这个类不是我可以修改的东西 我不确定如何限定它自动连接的作业 每个
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime
  • 如何使用socket.io发送图像文件(二进制数据)?

    我无法从以下位置发送数据Android Client to NodeJS Server I use Socket IO 客户端 https github com socketio socket io client java我的客户端中的ja

随机推荐

  • Java可以连接通配符ssl吗

    我们希望购买通配符 SSL 证书 因为我们有很多子域 但是我不知道Java是否信任通配符证书 当人们通过 SSL 连接到我们的 API 时 我们不足以强制与我们通信的所有第三方将我们的 SSL 证书添加到他们的本地信任库中 目前 我面临着两
  • 使用Python获取pptx文件幻灯片的标题

    我正在尝试使用 Python 获取 powerpoint 文件的每张幻灯片的标题 我正在Python 中使用Presentation 包 但我找不到任何指定标题的内容 我有这段代码返回 powerpoint 文件的内容 但我需要指定标题 f
  • Angular 4 - 如何为 type='input' 渲染 2 位小数

    这个问题是关于当用户将数据输入数字类型的输入时限制 验证输入 我遇到的问题是 当模型首次加载时 任何整数或 1dp 的数字都仅以 1dp 渲染 例如 40 或 40 0 均显示为 40 0 而不是 40 00 我添加了此代码 以便在用户输入
  • AES 算法 - 解密问题

    我已经编写了AES解密代码 但没有成功 我的 AES 算法课程在这里 http pastebin com QtpFnW84和实施是 String Masterkey eX0XcsF8lkeX0XcsF8lkeX0XcsF8lkeX0XcsF
  • 用于 OpenGL ES 的多边形三角剖分为三角形带

    我正在寻找一个快速多边形三角剖分算法可以将不是很复杂的二维凹多边形 无孔 三角化为三角条准备发送到 OpenGL ES 进行绘图GL TRIANGLE STRIP 我知道一些算法 但我找不到适合我需要的算法 http www flipcod
  • SQLite 添加主键

    我使用 Sqlite 创建了一个表CREATE TABLE AS语法基于创建表SELECT陈述 现在这个表没有主键 但我想添加一个 执行中ALTER TABLE table name ADD PRIMARY KEY col1 col2 给出
  • 从 Kendo Grid 数据源导出所有数据

    我按照有关导出 Kendo 网格数据的教程进行操作 http www kendoui c om blogs teamblog posts 13 03 12 exporting the kendo ui grid data to excel
  • C# 8.0 使用 Range 表示多维数组

    在 C 8 0 中 为什么我可以在一维数组上使用 range var oneDim new int 5 var oneDimSlice oneDim 2 4 但不能在多维数组上使用它吗 var twoDim new int 5 5 var
  • EncryptedXml DecryptDocument 方法抛出“错误数据”异常

    我为加密 解密流编写了一个代码块 该代码在我的本地机器上运行 但是当我在网络上发布我的代码时 解密函数抛出 错误数据 异常 这是我的加密和解密函数 private static MemoryStream EncryptStream XmlD
  • 通过 Windows 10 控制台 VT-100 转义序列获取光标位置

    我正在尝试 Windows 10 控制台中对 VT 100 转义序列的新 有限 支持 支持的序列记录在https msdn microsoft com en us library windows desktop mt638032 v vs
  • Heroku SSL 端点出现问题

    我正在尝试向 Heroku 添加 SSL 证书 该证书是从 Network Solutions 购买的 我完成了所有步骤并创建了一个 csr 文件 将该文件上传到 NetworkSolutions 下载了他们的 crt 文件包 MYSITE
  • 如何在 JavaScript 中创建可链接函数?

    让我们想象一下这样的函数 function foo x x return x 它的用法如下 var x y x Notepad y foo x console log y Prints Notepad 我正在寻找一种方法来创建可与其他函数链
  • 从标记的枚举中获取描述属性

    我正在尝试创建一个扩展方法 该方法将返回List
  • 如何优雅地检查 Erlang 中的许多条件?

    因此 当用户发送注册帐户的请求时 他们会发送用户名 密码 电子邮件和其他信息 注册功能必须验证其所有数据 一个例子是 验证电子邮件未被使用 验证用户名未被使用 验证用户名是字母数字 验证所有字段的长度都超过 X 个字符 验证所有字段的长度都
  • 启动应用程序,在 C++ 中捕获 stdout 和 stderr

    如何启动应用程序并通过 stdout 或 stderr 捕获输出 我正在编写一个自动构建系统 我需要捕获输出进行分析 我想更新 svn 存储库并获取修订号 以便如果成功的话我可以移动 autobuild revNumber 中的文件 我还想
  • Ant - 仅复制文件而不复制目录

    我需要使用 Ant 脚本复制文件夹中除目录之外的所有文件 我使用下面的脚本来做到这一点
  • 当 单元格中的文本发生更改时,jQuery 事件侦听器?

    jQuery 有没有办法将监听器附加到 td 以便当单元格内的文本发生更改 由 JavaScript 而不是用户 时 会触发该事件 延长姆威的回答 这是一些代码 var td my table tr td eq 1 var tdHtml t
  • 是否有任何理由重写 Java 8 中枚举中的方法

    正如所指出的herelambda 提供了一种非常优雅的方式来指定各个枚举值的行为 在 Java 8 之前 我通常会将其实现为 enum Operator TIMES public int operate int n1 int n2 retu
  • SQLite - 对表进行排序

    我有一个 SQLlite 数据库 我想按字母顺序对表进行排序 我该怎么做 有没有一种方法可以仅使用 SQLite 对条目进行排序 或者我是否必须首先将表读入数组 对其进行排序 然后将其写入数据库 这是我的查询 从表中选择条目 其中 id 我
  • Kubernetes 资源版本太旧

    我正在开发一个为不同 k8s 资源创建监视的操作员 我时不时地可以在日志中看到以下异常 并且应用程序停止 是什么导致了这个问题 我该如何解决这个问题 io fabric8 kubernetes client KubernetesClient