为了账号安全,请及时绑定邮箱和手机立即绑定

轮询Pod的就绪状态

轮询Pod的就绪状态

长风秋雁 2021-04-01 10:11:33
我正在使用用于Java的fabric8库在Kubernetes集群上部署应用程序。我想轮询豆荚的状态,以了解它们何时准备就绪。我开始写自己的文章,直到我了解了观察者。我实现了这样的事情deployment =          kubeClient.extensions().deployments().inNamespace(namespaceName).create(deployment);      kubeClient.pods().inNamespace(namespaceName).watch(new Watcher<Pod>() {        @Override        public void eventReceived(io.fabric8.kubernetes.client.Watcher.Action action,            Pod resource) {          logger.info("Pod event {} {}", action, resource);          logger.info("Pod status {} , Reason {} ", resource.getStatus().getPhase(),              resource.getStatus().getReason());        }        @Override        // What causes the watcher to close?        public void onClose(KubernetesClientException cause) {          if (cause != null) {            // throw?            logger.error("Pod event {} ", cause);          }        }      });我不确定我是否正确理解Watcher功能。会超时吗?还是我仍然在eventReceivedMethod()中编写我的轮询器?观察者的用例是什么?
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

// What causes the watcher to close?

由于手表是使用websocket实现的,因此连接随时可能由于任何原因或没有原因而关闭。

观察者的用例是什么?

我想这有两个方面:不支付TCP / IP + SSL连接设置成本,使其更快,使系统由事件驱动而不是简单的轮询,这将使每个参与者使用更少的资源(服务器和您的服务器客户)。

但是,是的,对于您的问题的答案是,如果您尚未达到预期的Pod状态,则需要具有重试逻辑来重新建立观察程序。


查看完整回答
反对 回复 2021-04-21
  • 1 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信