Проверьте состояние реплик StatefulState с помощью io.fabric8.kubernetes - PullRequest
0 голосов
/ 21 марта 2019

Я завершаю работу модулей в состоянии с использованием io.fabric8.kubernetes клиента в качестве

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 голосов
/ 30 мая 2019

Как кто-то сказал в комментариях, клиентский API по своей природе асинхронный.Это означает, что вы должны думать иначе, чем процедурный способ проверки статуса действия.Как видно из документации https://github.com/fabric8io/kubernetes-client#following-events, клиент позволяет вам определить наблюдателя, в котором вы можете указать в анонимном классе все действия, которые будут выполняться, когда происходит желаемое событие / состояние.

...