当前位置: 首页 > 知识库问答 >
问题:

如何使用fabric8 kubernetes Java&Scala客户机API设置容器上的资源需求

谢财
2023-03-14

fabric8 kubernetes Java&Scala客户机API非常适合与kubernetes(或OpenShift)进行对话,但它的文档非常稀疏。向kubernetes Pod中运行的容器添加资源需求的代码示例是什么?

共有1个答案

郑高驰
2023-03-14

如果您正在使用面向Java和Scala的fabric8 kubernetes-client API,下面是一段代码,它演示了如何将资源需求添加到在Pod中运行的容器中。这段代码是从Scala复制的,但Java代码非常相似:

// other fabric8 imports not included; just focusing on resource
// requirements logic in this example
import io.fabric8.kubernetes.api.model.Quantity
import io.fabric8.kubernetes.api.model.ResourceRequirementsBuilder

// Use Java style Map (as opposed to Scala's Map class)
val reqMap: java.util.Map[String, Quantity] =
  new java.util.HashMap[String, Quantity]()

// add CPU and memory requirements to the map
reqMap.put("cpu", new Quantity("1"))
reqMap.put("memory", new Quantity("1500Mi"))

// Build a ResourceRequirements object from the map
val reqs = new ResourceRequirementsBuilder()
  .withRequests(reqMap)
  .build()

// pass the ResourceRequirements object to the container spec
val pod = new PodBuilder()
  .withNewMetadata()
  .withName(podName)
  .endMetadata()
  .withNewSpec()
  .withRestartPolicy("OnFailure")
  .addNewContainer()
  .withName(containerName)
  .withImage(containerImage)
  .withImagePullPolicy("Always")
  .withResources(reqs)            // <-- resource reqs here
  .withCommand(commandName)
  .withArgs(commandArguments)
  .endContainer()
  .endSpec()
  .build()

// create the new pod with resource requirements via the 
// fabric8 kube client:
client.pods().inNamespace(nameSpace).withName(podName).create(pod)
 类似资料:
  • 我用Fabric8Kubernetes Java客户机API编写了一个示例,以设置容器上的GPU资源需求。我得到以下运行时错误: 示例的整个源代码如下:

  • 问题内容: 正如这个问题的标题所示,我想使用docker(docker.io)设置容器的最大磁盘/内存和cpu使用率。 有没有办法只使用docker来做到这一点? 问题答案: 内存/ CPU Docker现在支持更多资源分配选项: 通过-c标志分配CPU 内存限制,通过-m标志 特定的CPU内核,通过–cpuset标志 请查看更多详细信息。 如果使用lxc后端(),则可以指定更细粒度的资源分配方案

  • 在java fx中,使用< code>%key符号的组件可以使用i18n标签。 比如说- 是否可以对组件值使用i18n? 以下代码不起作用-

  • 问题内容: 因此,已经有一个必须在控制台上运行的Python程序设置了。我将使用Javascript为应用程序构建Web GUI界面。我将如何: 一种。开始处理此Python程序的输入/输出,而无需触摸原始代码。 b。通过Javascript调用将控制台输入发送到Python程序。我已经研究了原始的HTTP请求/ AJAX,但不确定如何将其作为输入发送到Python程序。 问题答案: 一种。处理程

  • 在JMS 1.x中,客户端ID用于在创建持久订阅时唯一标识客户端。这个答案解释了JMS 1.x中clientId的用法 对于JMS 2. x,clientId是可选的。我想了解在JMS 2. x中提供clientId的利弊。 摘自甲骨文中一篇关于 JMS 2.x 功能的文章: 共享持久订阅。这些仅在JMS 2.0中可用,并使用创建。它们可以有任意数量的消费者。设置客户端标识符是可选的。订阅由订阅名