我正在使用kubernetes-client / java api,我想以编程方式获取所有命名空间中所有pod的pod状态。我的代码基于此example on 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的所有状态列表,但它会自动&#34; push&#34;实时发生的更多pod状态事件?或者这只是触发一次?
答案 0 :(得分:3)
Watch旨在发送持续更新。如果您运行程序一段时间并启动/停止某些操作,您将看到新的更新。
我不确定将其称为事件处理程序是否正确。这是一种不同的模式。