×
描述

EgressService 是一个 CRD,允许用户请求将来自所有作为相应 LoadBalancer 服务端点的 Pod 的出站数据包的源 IP 设置为其入口 IP。此外,它还允许用户请求来自所有作为 LoadBalancer 服务端点的 Pod 的出站数据包使用与主网络不同的网络。

类型

对象

规格

属性 类型 描述

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

对象

EgressServiceSpec 定义了 EgressService 的期望状态

status

对象

EgressServiceStatus 定义了 EgressService 的观察状态

.spec

描述

EgressServiceSpec 定义了 EgressService 的期望状态

类型

对象

属性 类型 描述

network

字符串

此服务应将出站流量和相应的入站回复发送到的网络。这通常实现为 VRF 映射,表示一个数字 ID 或路由表的字符串名称,默认情况下使用主机默认路由。

nodeSelector

对象

允许限制可以选择处理服务的流量的节点,当 sourceIPBy=LoadBalancerIP 时。如果存在,则只有其标签与指定的选取器匹配的节点才能被选中来处理服务的流量。如果没有指定,则可以选择集群中的任何节点来管理服务的流量。

sourceIPBy

字符串

确定源自支持 LoadBalancer 服务的 Pod 的出站流量的源 IP。当为 `LoadBalancerIP` 时,源 IP 设置为其 LoadBalancer 入口 IP。当为 `Network` 时,源 IP 根据网络的接口设置,利用已就位的伪装规则。通常这些规则指定将 SNAT 设置为出站接口的 IP,这意味着数据包通常会使用节点的 IP 发送。

.spec.nodeSelector

描述

允许限制可以选择处理服务的流量的节点,当 sourceIPBy=LoadBalancerIP 时。如果存在,则只有其标签与指定的选取器匹配的节点才能被选中来处理服务的流量。如果没有指定,则可以选择集群中的任何节点来管理服务的流量。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

matchExpressions[]

对象

标签选择器需求是一个选择器,它包含值、键和一个关联键和值的运算符。

matchLabels

对象 (字符串)

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

.spec.nodeSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

类型

数组

.spec.nodeSelector.matchExpressions[]

描述

标签选择器需求是一个选择器,它包含值、键和一个关联键和值的运算符。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

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

operator

字符串

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

values

数组 (字符串)

values 是一个字符串值数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并补丁期间会被替换。

.status

描述

EgressServiceStatus 定义了 EgressService 的观察状态

类型

对象

必需
  • host

属性 类型 描述

host

字符串

选择处理服务流量的节点的名称。如果 sourceIPBy=Network,则该字段将设置为“ALL”。

API 端点

提供以下 API 端点

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

    • GET:列出 EgressService 类型的对象

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

    • DELETE:删除 EgressService 集合

    • GET:列出 EgressService 类型的对象

    • POST:创建 EgressService

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

    • DELETE:删除 EgressService

    • GET:读取指定的 EgressService

    • PATCH:部分更新指定的 EgressService

    • PUT:替换指定的 EgressService

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

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

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

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

/apis/k8s.ovn.org/v1/egressservices

HTTP 方法

GET

描述

列出 EgressService 类型的对象

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

200 - OK

EgressServiceList 模式

401 - 未授权

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

HTTP 方法

DELETE

描述

删除 EgressService 集合

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

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 EgressService 类型的对象

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

200 - OK

EgressServiceList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 EgressService

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

dryRun

字符串

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

fieldValidation

字符串

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

表 5. 主体参数
参数 类型 描述

body

EgressService 模式

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

200 - OK

EgressService 模式

201 - 已创建

EgressService 模式

202 - 已接受

EgressService 模式

401 - 未授权

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

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

name

字符串

EgressService 的名称

HTTP 方法

DELETE

描述

删除 EgressService

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

dryRun

字符串

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

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

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 EgressService

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

200 - OK

EgressService 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressService

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

EgressService 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressService

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

dryRun

字符串

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

fieldValidation

字符串

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

表 14. 主体参数
参数 类型 描述

body

EgressService 模式

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

200 - OK

EgressService 模式

201 - 已创建

EgressService 模式

401 - 未授权

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

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

name

字符串

EgressService 的名称

HTTP 方法

GET

描述

读取指定的 EgressService 的状态

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

200 - OK

EgressService 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressService 的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

EgressService 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressService 的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

表 21. 主体参数
参数 类型 描述

body

EgressService 模式

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

200 - OK

EgressService 模式

201 - 已创建

EgressService 模式

401 - 未授权