使用io.fabric8.kubernetes检查StatefulState副本的状态

时间:2019-03-21 14:52:15

标签: kubernetes fabric8

我正在使用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

但是,即使吊舱未准备就绪,这种情况似乎也能满足!

1 个答案:

答案 0 :(得分:0)

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