首页 > 解决方案 > 如何知道使用fabric8 java客户端API在Kubernetes中滚动升级部署的状态?

问题描述

我正在使用fabric8 java客户端API对部署的特定容器进行滚动升级

client.apps().deployments().inNamespace(..)
       .withName(..)
       .rolling()
       .updateImage(...);

在观察 k8s 时,我可以看到新的 pod 正在创建,而旧的 pod 已按预期删除。如何以编程方式了解升级状态?

无论升级成功还是失败,我都需要返回响应。

标签: javakubernetesfabric8

解决方案


要检查部署发生了什么,您可以使用 Watcher:

client.apps().deployments().inNamespace("default").watch(new Watcher<Deployment>() {
  @Override
  public void eventReceived(Action action, Deployment resource) {
    // Do stuff depending upon action
  }

  @Override
  public void onClose(KubernetesClientException cause) {

  }
});

Action是一个枚举,因此您可以检查ERROR并引发异常:

enum Action {
    ADDED, MODIFIED, DELETED, ERROR
  }

在这里,您可以找到更多关于部署可以做什么的示例


推荐阅读