使用Fabric8的Kubernetes客户端API

时间:2020-06-08 02:19:23

标签: java kubernetes kubernetes-pod fabric8

我正在使用Fabric8 Java客户端库进行Kubernetes。我找不到在容器上执行更新操作的最佳方法。基本上我想做的是创建一个容器图像为“ nginx”的容器,现在我想将此图像更新为“ nginx:1.16.1”。

我试图做的是

client.pods().inNamespace(podsModel.getNamespace()).withName(podsModel.getNamespace()).edit().editSpec()
                .editContainer(0).withNewImage("nginx:1.16.1").endContainer().endSpec().buildSpec();

1 个答案:

答案 0 :(得分:0)

您应该能够使用上面的代码来编辑Pod规范,您只需要使用done()而不是buildSpec()

try (KubernetesClient client = new DefaultKubernetesClient()) {
  Pod updatedPod = client.pods().inNamespace(namespace)
        .withName(podName)
        .edit().editSpec().editContainer(0)
        .withImage("nginx:1.16.1")
        .endContainer().endSpec().done();
}

但是,您不应该自己使用Pod。吊舱被设计为相对短暂的一次性实体。您应该使用一些控制器资源(DeploymentStatefulSet等),它们可以代表您管理Pod对象。

维护人员提供了一个文档,用于常见的Fabric8 Kubernetes客户端操作。您也可以查看以下内容:Fabric8 Kubernetes Client Cheat Sheet