java - 了解 Kubernetes Watch (kubernetes-client/java api)
问题描述
我正在使用 kubernetes-client/java api,我想以编程方式获取所有命名空间中所有 pod 的 pod 状态。我的代码基于Kubernetes java library 上的这个示例。
这是我的代码片段:
Watch<V1Pod> watch = Watch.createWatch(
client,
api.listPodForAllNamespacesCall(
null, null, null, null, limit,
null, null, null, watchTrue,
null, null),
new TypeToken<Watch.Response<V1Pod>>() {}.getType());
for (Watch.Response<V1Pod> item : watch) {
V1PodStatus podStatus = item.object.getStatus();
String name = item.object.getMetadata().getName();
String status = podStatus.getPhase();
String kind = item.object.getKind();
String details = podStatus.toString();
System.out.printf("NAME: %s | KIND: %s | STATUS: %s | DETAILS: %n%s%n====================%n", name, kind, status, details);
}
我的问题是:是否Watch
相当于事件处理程序?这段代码向我显示了 pod 的所有状态列表,但它会在实时发生时自动“推送”更多 pod 状态事件吗?还是只触发一次?
解决方案
Watch 旨在发送持续更新。如果你运行你的程序一段时间并开始/停止某些东西,你会看到新的更新即将到来。
我不确定将其称为事件处理程序是否正确。这是一个不同的模式。
推荐阅读
- r - 如何使用平方关系矩阵制作 PCA 图
- javascript - 使用特定键获取 json 对象的一部分的最佳方法是什么?
- flutter - 在点击另一个小部件时使小部件显示 Flutter
- mysql - 如何从 Windows 10 中完全删除 MySQL,包括缓存的 root 密码?
- windows - 删除后Git仍然要求密钥?
- python-3.x - 使用python计算图像中的星数
- typescript - 在 vue 和 typescript 中通过 id 获取元素
- nlp - 如何解决 Kaldi ASR 特征提取错误?
- flutter - Future 执行后不显示小部件
- amazon-web-services - 低级多部分上传性能问题