0

我正在使用 fabric8 通过以下代码获取 kuberenetes pod 的状态。

KubernetesHelper.getPodStatusText(pod);

我在容器中部署了一个应用程序,并且容器和 pod 之间存在一对一的映射。我的要求是重新部署应用程序。因此,在删除 pod 后,我检查状态,并且该方法在删除时返回“正在运行”状态。

我无法确定该 pod 已被删除,因为新部署的应用程序也返回“正在运行”状态。是否有任何其他 pod 变量可用于识别健康 pod 与终止 pod。

4

1 回答 1

1

一种方法是执行滚动升级。这将确保您部署的应用程序不会导致停机(新的 pod 会在旧的 pod 停止之前启动)。一个警告是您必须使用复制控制器或复制集才能这样做。大多数滚动部署只涉及为新版本的软件更新容器的映像。

您可以通过fabric8Kubernetes Java 客户端通过Java 完成此操作。是一个例子:

client.replicationControllers()
    .inNamespace("thisisatest")
    .withName("nginx-controller")
    .rolling().updateImage("nginx");

您可以更改复制控制器的任何配置(副本、环境变量等)。当您运行新版本的 podReady和旧的复制和 pod 已停止和删除时,该调用将返回。

于 2016-04-17T20:57:04.470 回答