0

我正在使用io.fabric8.kubernetes客户端终止处于有状态状态的 pod

client
        .inNamespace(namespace)
        .pods()
        .withLabel("xx", "xxx")
        .delete()

如何检查 StatefulSet 是否恢复?

我正在尝试什么:

StatefulSet statefulSet = client
            .pods()
            .inNamespace("namespace-xxx")
            .statefulSets()
            .inNamespace(namespace)
            .withName("statefulset-name")
            .get();

StatefulSetStatus status = statefulSet.getStatus();
StatefulSetSpec spec = statefulSet.getSpec();

然后检查条件

spec.getReplicas.intValue != status.getReadyReplicas.intValue

然而,即使豆荚没有准备好,这个条件似乎也能满足!

4

1 回答 1

0

正如有人在评论中所说,客户端 API 本质上是异步的。这意味着您应该以不同于程序方式的方式来检查操作的状态。正如您从文档https://github.com/fabric8io/kubernetes-client#following-events中看到的那样,客户端允许您定义一个观察者,您可以在匿名类中指定在需要时执行的所有操作事件/状态发生。

于 2019-05-30T13:30:33.497 回答