×

规范

属性 类型 描述

apiVersion

字符串

APIVersion定义了对象的此表示形式的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind是一个字符串值,表示此对象表示的REST资源。服务器可以从客户端提交请求的端点推断出这一点。无法更新。采用驼峰式命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

PerformanceProfileSpec定义了PerformanceProfile的期望状态。

status

对象

PerformanceProfileStatus定义了PerformanceProfile的观察状态。

.spec

描述

PerformanceProfileSpec定义了PerformanceProfile的期望状态。

类型

对象

必需
  • cpu

  • nodeSelector

属性 类型 描述

additionalKernelArgs

数组 (字符串)

附加内核参数。

cpu

对象

CPU定义了一组与CPU相关的参数。

globallyDisableIrqLoadBalancing

布尔值

GloballyDisableIrqLoadBalancing切换是否禁用隔离CPU集的IRQ负载均衡。当该选项设置为“true”时,它将禁用隔离CPU集的IRQ负载均衡。将该选项设置为“false”允许在所有CPU之间平衡IRQ,但是当使用irq-load-balancing.crio.io/cpu-quota.crio.io注释时,可以使用每个pod CPU禁用IRQ负载均衡。默认为“false”

hardwareTuning

对象

HardwareTuning定义了一组用于隔离和保留cpu的CPU频率。

hugepages

对象

HugePages定义了一组与巨页相关的参数。可以同时设置具有多个大小值的巨页。例如,可以同时设置1G和2M的巨页,这两个值都将由性能配置文件控制器设置在节点上。需要注意的是,将巨页默认大小设置为1G将删除节点上所有与2M相关的文件夹,并且将无法在节点下配置2M巨页。

machineConfigLabel

对象 (字符串)

MachineConfigLabel定义要添加到操作员创建的MachineConfig的标签。它必须用于目标此性能配置文件的MachineConfigPool的MachineConfigSelector中。默认为“machineconfiguration.openshift.io/role=<与NodeSelector标签键中的角色相同>”。

machineConfigPoolSelector

对象 (字符串)

MachineConfigPoolSelector定义要在操作员创建的资源(如KubeletConfigs)的MachineConfigPoolSelector中使用的MachineConfigPool标签。默认为“machineconfiguration.openshift.io/role=<与NodeSelector标签键中的角色相同>”。

net

对象

Net定义了一组与网络相关的功能。

nodeSelector

对象 (字符串)

NodeSelector定义要在操作员创建的资源(如Tuned)的NodeSelectors中使用的节点标签。它很可能应该(但不必)与目标此性能配置文件的MachineConfigPool的NodeSelector中的节点标签匹配。如果未设置machineConfigLabels或machineConfigPoolSelector,我们期望特定的NodeSelector格式<domain>/<role>: "",以便能够计算前面提到的字段的默认值。

numa

对象

NUMA定义了与拓扑感知亲和性相关的选项。

realTimeKernel

对象

RealTimeKernel定义了一组实时内核相关的参数。未设置时,不会安装RT内核。

workloadHints

对象

WorkloadHints为不同类型的负载定义提示。它允许定义应应用于节点顶部的tuned和内核参数的精确集合。

.spec.cpu

描述

CPU定义了一组与CPU相关的参数。

类型

对象

必需
  • isolated

  • reserved

属性 类型 描述

balanceIsolated

布尔值

BalanceIsolated切换隔离CPU集是否符合负载均衡工作负载的条件。当此选项设置为“false”时,隔离CPU集将是静态的,这意味着工作负载必须显式地将每个线程分配给特定CPU才能跨多个CPU工作。将其设置为“true”允许在CPU之间平衡工作负载。将其设置为“false”为保证的工作负载提供最可预测的性能,但它将CPU负载均衡的复杂性卸载到应用程序。默认为“true”

isolated

字符串

隔离定义了一组CPU,这些CPU将用于为应用程序线程提供尽可能多的执行时间,这意味着要从CPU中删除尽可能多的无关任务。需要注意的是,CPU管理器可以选择任何CPU来运行工作负载,但保留的CPU除外。为了保证您的工作负载将在隔离的CPU上运行:1. 保留的CPU和隔离的CPU的并集应包含所有在线CPU 2. 隔离的CPU字段应与保留的CPU字段互补。

离线

字符串

离线定义了一组将不使用并设置为离线的CPU。

reserved

字符串

保留定义了一组CPU,这些CPU不会用于kubelet启动的任何容器工作负载。

共享

字符串

共享定义了一组CPU,这些CPU将在需要额外非独占CPU的保证工作负载之间共享,以及这些工作负载已使用的隔离的独占资源。

.spec.hardwareTuning

描述

HardwareTuning定义了一组用于隔离和保留cpu的CPU频率。

类型

对象

属性 类型 描述

isolatedCpuFreq

整数

IsolatedCpuFreq定义了在隔离的CPU上设置的最小频率。

reservedCpuFreq

整数

ReservedCpuFreq定义了在保留的CPU上设置的最大频率。

.spec.hugepages

描述

HugePages定义了一组与巨页相关的参数。可以同时设置具有多个大小值的巨页。例如,可以同时设置1G和2M的巨页,这两个值都将由性能配置文件控制器设置在节点上。需要注意的是,将巨页默认大小设置为1G将删除节点上所有与2M相关的文件夹,并且将无法在节点下配置2M巨页。

类型

对象

属性 类型 描述

defaultHugepagesSize

字符串

DefaultHugePagesSize定义了内核启动参数下的巨大页面的默认大小。

页面

数组

Pages定义了我们想要在启动时分配的巨大页面。

pages[]

对象

HugePage定义了特定大小的已分配巨大页面的数量。

.spec.hugepages.pages

描述

Pages定义了我们想要在启动时分配的巨大页面。

类型

数组

.spec.hugepages.pages[]

描述

HugePage定义了特定大小的已分配巨大页面的数量。

类型

对象

属性 类型 描述

计数

整数

Count定义了巨大页面的数量,映射到“hugepages”内核启动参数。

节点

整数

Node定义了将分配巨大页面的NUMA节点,如果未指定,则将在NUMA节点之间平均分配页面。

大小

字符串

Size定义了巨大页面的大小,映射到“hugepagesz”内核启动参数。

.spec.net

描述

Net定义了一组与网络相关的功能。

类型

对象

属性 类型 描述

设备

数组

Devices包含网络设备表示列表,这些表示将设置为与CPU.Reserved相等的netqueue计数。如果未指定设备,则默认为所有设备。

devices[]

对象

Device定义了一种以多种选项表示网络设备的方法:设备名称、供应商ID、型号ID、PCI路径和MAC地址。

userLevelNetworking

布尔值

启用UserLevelNetworking后,将所有或指定的网络设备队列大小设置为保留的CPU数量。默认为“false”。

.spec.net.devices

描述

Devices包含网络设备表示列表,这些表示将设置为与CPU.Reserved相等的netqueue计数。如果未指定设备,则默认为所有设备。

类型

数组

.spec.net.devices[]

描述

Device定义了一种以多种选项表示网络设备的方法:设备名称、供应商ID、型号ID、PCI路径和MAC地址。

类型

对象

属性 类型 描述

deviceID

字符串

以16位十六进制数表示的网络设备ID(型号)。

interfaceName

字符串

要匹配的网络设备名称。它使用shell风格通配符的语法,可以是正向的或负向的。

vendorID

字符串

以16位十六进制数表示的网络设备供应商ID。

.spec.numa

描述

NUMA定义了与拓扑感知亲和性相关的选项。

类型

对象

属性 类型 描述

topologyPolicy

字符串

启用TopologyManager时应用的策略名称。操作符默认为“best-effort”。

.spec.realTimeKernel

描述

RealTimeKernel定义了一组实时内核相关的参数。未设置时,不会安装RT内核。

类型

对象

属性 类型 描述

enabled

布尔值

Enabled定义是否应安装实时内核包。默认为“false”。

.spec.workloadHints

描述

WorkloadHints为不同类型的负载定义提示。它允许定义应应用于节点顶部的tuned和内核参数的精确集合。

类型

对象

属性 类型 描述

highPowerConsumption

布尔值

HighPowerConsumption定义是否应将节点配置为高功耗模式。此标志将影响功耗,但会提高CPU延迟。默认为false。

mixedCpus

布尔值

MixedCpus在节点上启用mixed-cpu-node-plugin。默认为false。

perPodPowerManagement

布尔值

PerPodPowerManagement定义是否应将节点配置为每个Pod的电源管理。PerPodPowerManagement和HighPowerConsumption提示不能同时启用。默认为false。

realTime

布尔值

RealTime定义是否应将节点配置为实时工作负载。默认为true。

.status

描述

PerformanceProfileStatus定义了PerformanceProfile的观察状态。

类型

对象

属性 类型 描述

conditions

数组

Conditions表示当前状态的最新可用观测值。

conditions[]

对象

Condition表示操作符协调功能的状态。

runtimeClass

字符串

RuntimeClass包含操作符创建的RuntimeClass资源的名称。

tuned

字符串

Tuned指向包含此操作符生成的调整值的Tuned自定义资源对象。

.status.conditions

描述

Conditions表示当前状态的最新可用观测值。

类型

数组

.status.conditions[]

描述

Condition表示操作符协调功能的状态。

类型

对象

必需
  • status

  • 类型

属性 类型 描述

lastHeartbeatTime

字符串

lastTransitionTime

字符串

消息

字符串

原因

字符串

status

字符串

类型

字符串

ConditionType是操作符协调功能的状态。

API端点

提供以下API端点

  • /apis/performance.openshift.io/v2/performanceprofiles

    • DELETE:删除PerformanceProfile集合

    • GET:列出PerformanceProfile类型的对象

    • POST:创建一个PerformanceProfile

  • /apis/performance.openshift.io/v2/performanceprofiles/{name}

    • DELETE:删除一个PerformanceProfile

    • GET:读取指定的PerformanceProfile

    • PATCH:部分更新指定的PerformanceProfile

    • PUT:替换指定的PerformanceProfile

  • /apis/performance.openshift.io/v2/performanceprofiles/{name}/status

    • GET:读取指定的PerformanceProfile的状态

    • PATCH:部分更新指定的PerformanceProfile的状态

    • PUT:替换指定的PerformanceProfile的状态

/apis/performance.openshift.io/v2/performanceprofiles

HTTP方法

DELETE

描述

删除PerformanceProfile集合

表1. HTTP响应
HTTP代码 响应体

200 - OK

Status模式

401 - 未授权

HTTP方法

GET

描述

列出PerformanceProfile类型的对象

表2. HTTP响应
HTTP代码 响应体

200 - OK

PerformanceProfileList模式

401 - 未授权

HTTP方法

POST

描述

创建一个PerformanceProfile

表3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的dryRun指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有dry run阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只会保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 4. 请求体参数
参数 类型 描述

body

PerformanceProfile 模式

表 5. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

201 - 已创建

PerformanceProfile 模式

202 - 已接受

PerformanceProfile 模式

401 - 未授权

/apis/performance.openshift.io/v2/performanceprofiles/{name}

表 6. 全局路径参数
参数 类型 描述

name

字符串

PerformanceProfile 的名称

HTTP方法

DELETE

描述

删除 PerformanceProfile

表 7. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的dryRun指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有dry run阶段

表 8. HTTP 响应
HTTP代码 响应体

200 - OK

Status模式

202 - 已接受

Status模式

401 - 未授权

HTTP方法

GET

描述

读取指定的 PerformanceProfile

表 9. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

401 - 未授权

HTTP方法

PATCH

描述

部分更新指定的 PerformanceProfile

表 10. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的dryRun指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有dry run阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只会保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 11. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

401 - 未授权

HTTP方法

PUT

描述

替换指定的 PerformanceProfile

表 12. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的dryRun指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有dry run阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只会保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 13. 请求体参数
参数 类型 描述

body

PerformanceProfile 模式

表 14. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

201 - 已创建

PerformanceProfile 模式

401 - 未授权

/apis/performance.openshift.io/v2/performanceprofiles/{name}/status

表 15. 全局路径参数
参数 类型 描述

name

字符串

PerformanceProfile 的名称

HTTP方法

GET

描述

读取指定的 PerformanceProfile 的状态

表 16. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

401 - 未授权

HTTP方法

PATCH

描述

部分更新指定的 PerformanceProfile 的状态

表 17. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的dryRun指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有dry run阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只会保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 18. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

401 - 未授权

HTTP方法

PUT

描述

替换指定的 PerformanceProfile 的状态

表 19. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的dryRun指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有dry run阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只会保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 20. 请求体参数
参数 类型 描述

body

PerformanceProfile 模式

表 21. HTTP 响应
HTTP代码 响应体

200 - OK

PerformanceProfile 模式

201 - 已创建

PerformanceProfile 模式

401 - 未授权