14.4.8. 不透明整数资源
借助不透明整数资源,集群操作员可以提供系统可能并不知道的新节点级资源。与 CPU 和内存类似,用户可以在 pod 规格中使用这些资源。调度程序执行资源核算,使得同时分配给 pod 的资源不会超过可用的数量。
不透明整数资源目前处于 Alpha 阶段,仅实施了资源核算。这些资源没有资源配额或限制范围支持,它们对 QoS 也无影响。
不透明整数资源之所以不透明,是因为 OpenShift Container Platform 不知道该资源具体是什么,但只有在该资源有足够可用的数量时才会在节点上调度 pod。它们之所以称为整数资源,是因为必须以整数表示的数量来提供或公告它们。API 服务器将这些资源的数量限制为整数。例如,3
、3000m
和 3Ki
就是有效的数量。
集群管理员通常负责创建资源并使它可用。有关创建不透明整数资源的更多信息,请参阅管理员指南中的 不透明整数资源。
要在 pod 中消耗不透明整数资源,请编辑 pod,将不透明资源的名称作为键包含在 spec.containers[].resources.requests
字段中。
例如:以下 pod 请求两个 CPU 和一个 foo
(不透明资源)。
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: myimage resources: requests: cpu: 2 pod.alpha.kubernetes.io/opaque-int-resource-foo: 1
只有在所有资源请求(包括 CPU、内存和任何不透明资源)得到满足时,才会调度 pod。在没有任何节点可满足资源请求时,pod 将保持 PENDING
状态。
Conditions: Type Status PodScheduled False ... Events: FirstSeen LastSeen Count From SubObjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 14s 0s 6 default-scheduler Warning FailedScheduling No nodes are available that match all of the following predicates:: Insufficient pod.alpha.kubernetes.io/opaque-int-resource-foo (1).