×
描述

EgressQoS 是一个 CRD,允许用户为其命名空间中 Pod 出站流量到指定 CIDR 定义 DSCP 值。将根据命名空间的每个 EgressQoSRule 检查来自这些 Pod 的流量,如果匹配,则使用相关的 DSCP 值标记流量。

类型

对象

规范

属性 类型 描述

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

对象

EgressQoSSpec 定义了 EgressQoS 的期望状态

status

对象

EgressQoSStatus 定义了 EgressQoS 的观察状态

.spec

描述

EgressQoSSpec 定义了 EgressQoS 的期望状态

类型

对象

必需
  • egress

属性 类型 描述

egress

数组

一系列 Egress QoS 规则对象

egress[]

对象

.spec.egress

描述

一系列 Egress QoS 规则对象

类型

数组

.spec.egress[]

描述
类型

对象

必需
  • dscp

属性 类型 描述

dscp

整数

匹配 Pod 流量的 DSCP 标记值。

dstCIDR

字符串

DstCIDR 指定目的地的 CIDR。只有前往此 CIDR 的流量才会使用 DSCP 值标记。此字段是可选的,如果未设置,则规则将应用于所有出站流量,而不管目的地如何。

podSelector

对象

PodSelector 仅将 QoS 规则应用于命名空间中其标签与此定义匹配的 Pod。此字段是可选的,如果未设置,则规则将应用于命名空间中的所有 Pod。

.spec.egress[].podSelector

描述

PodSelector 仅将 QoS 规则应用于命名空间中其标签与此定义匹配的 Pod。此字段是可选的,如果未设置,则规则将应用于命名空间中的所有 Pod。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 ANDed 的。

matchExpressions[]

对象

标签选择器要求是一个选择器,它包含值、键和一个将键和值关联在一起的操作符。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,操作符为“In”,而 values 数组仅包含“value”。这些要求是 ANDed 的。

.spec.egress[].podSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 ANDed 的。

类型

数组

.spec.egress[].podSelector.matchExpressions[]

描述

标签选择器要求是一个选择器,它包含值、键和一个将键和值关联在一起的操作符。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

operator 表示键与一组值的关系。有效操作符为 In、NotIn、Exists 和 DoesNotExist。

values

数组(字符串)

values 是字符串值的数组。如果操作符是 In 或 NotIn,则 values 数组必须是非空的。如果操作符是 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.status

描述

EgressQoSStatus 定义了 EgressQoS 的观察状态

类型

对象

属性 类型 描述

conditions

数组

指示 EgressQoS 对象状态详细信息的条件对象数组。

conditions[]

对象

Condition 包含此 API 资源当前状态的一个方面的详细信息。--- 此结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{ // 表示对 foo 当前状态的观察。 // 已知的 .status.conditions.type 为:“Available”、“Progressing”和“Degraded” // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"

// 其他字段 }

status

字符串

EgressQoS 资源是否成功应用的简明指示。

.status.conditions

描述

指示 EgressQoS 对象状态详细信息的条件对象数组。

类型

数组

.status.conditions[]

描述

Condition 包含此 API 资源当前状态的一个方面的详细信息。--- 此结构旨在直接用作字段路径 .status.conditions 中的数组。例如,

type FooStatus struct{
    // Represents the observations of a foo's current state.
    // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
    // +patchMergeKey=type
    // +patchStrategy=merge
    // +listType=map
    // +listMapKey=type
    Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
    // other fields
}
类型

对象

必需
  • lastTransitionTime

  • message

  • reason

  • status

  • type

属性 类型 描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一种状态转换到另一种状态的最后时间。这应该是底层条件发生变化的时间。如果不知道这一点,则可以使用 API 字段发生变化的时间。

message

字符串

message 是一个易于理解的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 表示设置条件时所基于的 .metadata.generation。例如,如果当前 .metadata.generation 为 12,但 .status.conditions[x].observedGeneration 为 9,则该条件相对于实例的当前状态已过期。

reason

字符串

reason 包含一个程序标识符,指示条件上次转换的原因。特定条件类型的生产者可以为此字段定义预期的值和含义,以及这些值是否被视为保证的 API。该值应为驼峰式字符串。此字段不能为空。

status

字符串

条件的状态,取值为 True、False 或 Unknown 之一。

type

字符串

条件类型,使用驼峰式命名法或 foo.example.com/CamelCase 格式。——许多 .condition.type 值在各个资源中保持一致,例如 Available,但由于任意条件可能很有用(参见 .node.status.conditions),因此消除冲突的能力非常重要。它匹配的正则表达式为 (dns1123SubdomainFmt/)?(qualifiedNameFmt)

API 端点

提供以下 API 端点:

  • /apis/k8s.ovn.org/v1/egressqoses

    • GET:列出 EgressQoS 类型的对象

  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses

    • DELETE:删除 EgressQoS 集合

    • GET:列出 EgressQoS 类型的对象

    • POST:创建 EgressQoS

  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses/{name}

    • DELETE:删除 EgressQoS

    • GET:读取指定的 EgressQoS

    • PATCH:部分更新指定的 EgressQoS

    • PUT:替换指定的 EgressQoS

  • /apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses/{name}/status

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

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

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

/apis/k8s.ovn.org/v1/egressqoses

HTTP 方法

GET

描述

列出 EgressQoS 类型的对象

表 1. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoSList 模式

401 - 未授权

/apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses

HTTP 方法

DELETE

描述

删除 EgressQoS 集合

表 2. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 EgressQoS 类型的对象

表 3. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoSList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 EgressQoS

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressQoS 模式

表 6. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

201 - 已创建

EgressQoS 模式

202 - 已接受

EgressQoS 模式

401 - 未授权

/apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses/{name}

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

name

字符串

EgressQoS 的名称

HTTP 方法

DELETE

描述

删除 EgressQoS

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

dryRun

字符串

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

表 9. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 EgressQoS

表 10. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressQoS

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

dryRun

字符串

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

fieldValidation

字符串

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

表 12. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressQoS

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressQoS 模式

表 15. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

201 - 已创建

EgressQoS 模式

401 - 未授权

/apis/k8s.ovn.org/v1/namespaces/{namespace}/egressqoses/{name}/status

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

name

字符串

EgressQoS 的名称

HTTP 方法

GET

描述

读取指定的 EgressQoS 的状态

表 17. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressQoS 的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

表 19. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressQoS 的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressQoS 模式

表 22. HTTP 响应
HTTP 代码 响应正文

200 - OK

EgressQoS 模式

201 - 已创建

EgressQoS 模式

401 - 未授权