我正在使用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();
答案 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
。吊舱被设计为相对短暂的一次性实体。您应该使用一些控制器资源(Deployment
,StatefulSet
等),它们可以代表您管理Pod
对象。
维护人员提供了一个文档,用于常见的Fabric8 Kubernetes客户端操作。您也可以查看以下内容:Fabric8 Kubernetes Client Cheat Sheet。