第 8 章 EgressQoS [k8s.ovn.org/v1]
- 描述
- egressqos 是一个 CRD,允许用户在其命名空间中为 pod 出口流量定义 DSCP 值到指定的 CIDR。来自这些 pod 的流量将根据命名空间的 EgressQoSRule 中的每个 EgressQoSRule 检查,如果存在与相关 DSCP 值匹配的流量。
- 类型
-
对象
8.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| EgressQoSSpec 定义所需的 EgressQoS 状态 |
|
| EgressQoSStatus 定义 EgressQoS 的观察状态 |
8.1.1. .spec
- 描述
- EgressQoSSpec 定义所需的 EgressQoS 状态
- 类型
-
object
- 必填
-
egress
-
属性 | 类型 | 描述 |
---|---|---|
|
| 一组 Egress QoS 规则对象 |
|
|
8.1.2. .spec.egress
- 描述
- 一组 Egress QoS 规则对象
- 类型
-
array
8.1.3. .spec.egress[]
- 描述
- 类型
-
object
- 必填
-
dscp
-
属性 | 类型 | 描述 |
---|---|---|
|
| DSCP 标记用于匹配 Pod 流量的值。 |
|
| DstCIDR 指定目的地的 CIDR。只有到此 CIDR 的流量标题将标记为 DSCP 值。此字段是可选的,如果没有设置该规则,无论目的地是什么,则规则会应用到所有出口流量。 |
|
| podSelector 只会将 QoS 规则应用到与这个定义匹配的命名空间中的 pod。此字段是可选的,如果没有设置会导致规则应用到命名空间中的所有 pod。 |
8.1.4. .spec.egress[].podSelector
- 描述
- podSelector 只会将 QoS 规则应用到与这个定义匹配的命名空间中的 pod。此字段是可选的,如果没有设置会导致规则应用到命名空间中的所有 pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
8.1.5. .spec.egress[].podSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
8.1.6. .spec.egress[].podSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
8.1.7. .status
- 描述
- EgressQoSStatus 定义 EgressQoS 的观察状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件对象数组,指示 EgressQoS 对象状态的详细信息。 |
|
| 条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,
type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", 和 "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition // other fields } |
|
| 简要指示是否成功应用了 EgressQoS 资源。 |
8.1.8. .status.conditions
- 描述
- 条件对象数组,指示 EgressQoS 对象状态的详细信息。
- 类型
-
array
8.1.9. .status.conditions[]
- 描述
条件包含此 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 }
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。-- Many .condition.type 值在资源间是一致的,但因为任意条件可能很有用(请参阅 .node.status.conditions),deconflict 的能力非常重要。它匹配的正则表达式是 (dns1123SubdomainFmt/)? (qualifiedNameFmt) |