java - 使用 Fabric8 的 Kubernetes 客户端 API
问题描述
我正在为 Kubernetes 使用 fabric8 java 客户端库。我无法找到对容器执行更新操作的最佳方式。基本上我想要做的是我创建了一个容器映像为“nginx”的 pod,现在我想将此映像更新为“nginx:1.16.1”。
我试图做的是
client.pods().inNamespace(podsModel.getNamespace()).withName(podsModel.getNamespace()).edit().editSpec()
.editContainer(0).withNewImage("nginx:1.16.1").endContainer().endSpec().buildSpec();
解决方案
您应该能够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
。Pod 被设计为相对短暂的、一次性的实体。您应该使用一些可以代表您管理对象的控制器资源(Deployment
等)。StatefulSet
Pod
维护者为常见的 Fabric8 Kubernetes Client 操作提供了一个文档。你也可以看看这个:Fabric8 Kubernetes Client Cheat Sheet。
推荐阅读
- youtube - 为什么谷歌不阻止 Youtube 下载器
- probability - 我想了解我们从逻辑回归中得到的概率结果
- ruby-on-rails - 在 after_save 之后 ActiveRecord 孩子无法访问自己
- java - LocalDate 到 Oracle DATE 的转换使用时区
- ms-access - Access 查询的嵌套 IIf 语句中的语法无效 - “您可能输入了一个没有前面值或标识符的逗号”
- arrays - matlab - 如何形成矩阵的输出
- php - 如何将php代码放入jquery函数中
- python - 如何将结果保存到文件中?
- r - 如果元素不在向量中,则将元素添加到向量中,然后再次搜索向量
- javascript - 用实习生框架理解 BDD