×
描述

EgressRouter是一个允许用户定义出口路由器的功能,该路由器充当Pod和外部系统之间的桥梁。出口路由器运行一个服务,该服务根据配置将源自Pod或一组Pod的出口流量重定向到远程外部系统或多个目标。它由集群网络操作符使用。更具体地说,给定具有<name>的EgressRouter CR,CNO将创建和管理: - 一个名为<name>的服务 - 一个名为<name>的出口Pod - 一个名为<name>的NAD 兼容性级别1:在主要版本内稳定至少12个月或3个次要版本(以较长者为准)。EgressRouter是一个单一的出口路由器Pod配置对象。

类型

对象

必需
  • spec

规格

属性 类型 描述

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

对象

所需出口路由器的规范。

status

对象

EgressRouter的观察到的状态。

.spec

描述

所需出口路由器的规范。

类型

对象

必需
  • addresses

  • mode

  • networkInterface

属性 类型 描述

addresses

数组

要在Pod的辅助接口上配置的IP地址列表。

addresses[]

对象

EgressRouterAddress包含要在路由器的接口上配置的IP CIDR和网关对

mode

字符串

Mode描述用于出口路由器的模式。默认模式是“Redirect”,并且是目前唯一支持的模式。

networkInterface

对象

要创建/使用的接口规范。默认为macvlan。目前仅支持macvlan。

redirect

对象

Redirect表示特定于重定向模式的配置参数。

.spec.addresses

描述

要在Pod的辅助接口上配置的IP地址列表。

类型

数组

.spec.addresses[]

描述

EgressRouterAddress包含要在路由器的接口上配置的IP CIDR和网关对

类型

对象

必需
  • ip

属性 类型 描述

gateway

字符串

如果无法自动确定,则为下一跳网关的IP地址。可以是IPv4或IPv6。

ip

字符串

IP是在路由器的接口上配置的地址。可以是IPv4或IPv6。

.spec.networkInterface

描述

要创建/使用的接口规范。默认为macvlan。目前仅支持macvlan。

类型

对象

属性 类型 描述

macvlan

对象

特定于接口类型macvlan的参数

.spec.networkInterface.macvlan

描述

特定于接口类型macvlan的参数

类型

对象

必需
  • mode

属性 类型 描述

master

字符串

主接口的名称。如果可以从IP地址推断出来,则无需指定。

mode

字符串

Mode描述用于macvlan接口的模式;Bridge|Private|VEPA|Passthru之一。默认模式是“Bridge”。

.spec.redirect

描述

Redirect表示特定于重定向模式的配置参数。

类型

对象

属性 类型 描述

fallbackIP

字符串

FallbackIP 指定远程目标的 IP 地址。可以是 IPv4 或 IPv6。如果没有指定重定向规则,则路由器的所有流量都将重定向到此 IP。如果指定了重定向规则,则路由器上任何其他端口(规则中未定义)上的任何连接都将重定向到此 IP。如果指定了重定向规则但未提供回退 IP,则其他端口上的连接将被拒绝。

redirectRules

数组

定义从 Pod 到目标的 DNAT 重定向(在重定向模式下)的 L4RedirectRules 列表。

redirectRules[]

对象

L4RedirectRule 定义从给定端口到目标 IP 和端口的 DNAT 重定向。

.spec.redirect.redirectRules

描述

定义从 Pod 到目标的 DNAT 重定向(在重定向模式下)的 L4RedirectRules 列表。

类型

数组

.spec.redirect.redirectRules[]

描述

L4RedirectRule 定义从给定端口到目标 IP 和端口的 DNAT 重定向。

类型

对象

必需
  • destinationIP

  • port

  • protocol

属性 类型 描述

destinationIP

字符串

IP 指定远程目标的 IP 地址。可以是 IPv4 或 IPv6。

port

整数

端口是客户端应发送流量以进行重定向的端口号。

protocol

字符串

协议可以是 TCP、SCTP 或 UDP。

targetPort

整数

TargetPort 允许指定将流量重定向到的远程目标上的端口号。如果未指定,则使用“端口”中的值。

.status

描述

EgressRouter的观察到的状态。

类型

对象

必需
  • conditions

属性 类型 描述

conditions

数组

观察到的出口路由器的状态

conditions[]

对象

EgressRouterStatusCondition 表示出口路由器已管理和监控组件的状态。

.status.conditions

描述

观察到的出口路由器的状态

类型

数组

.status.conditions[]

描述

EgressRouterStatusCondition 表示出口路由器已管理和监控组件的状态。

类型

对象

必需
  • status

  • type

属性 类型 描述

lastTransitionTime

``

LastTransitionTime 是上次更新当前状态属性的时间。

message

字符串

Message 提供有关当前条件的附加信息。这仅供人类使用。它可能包含换行符 (U+000A),应将其呈现为新行。

reason

字符串

Reason 是条件当前状态的驼峰式命名原因。

status

字符串

条件的状态,True、False、Unknown 之一。

type

字符串

Type 指定此条件报告的方面;Available、Progressing、Degraded 之一

API 端点

提供以下 API 端点

  • /apis/network.operator.openshift.io/v1/egressrouters

    • GET:列出 EgressRouter 类型的对象

  • /apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters

    • DELETE:删除 EgressRouter 集合

    • GET:列出 EgressRouter 类型的对象

    • POST:创建 EgressRouter

  • /apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters/{name}

    • DELETE:删除 EgressRouter

    • GET:读取指定的 EgressRouter

    • PATCH:部分更新指定的 EgressRouter

    • PUT:替换指定的 EgressRouter

  • /apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters/{name}/status

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

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

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

/apis/network.operator.openshift.io/v1/egressrouters

HTTP 方法

GET

描述

列出 EgressRouter 类型的对象

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

200 - OK

EgressRouterList 模式

401 - 未授权

/apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters

HTTP 方法

DELETE

描述

删除 EgressRouter 集合

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

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 EgressRouter 类型的对象

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

200 - OK

EgressRouterList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 EgressRouter

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressRouter 模式

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

200 - OK

EgressRouter 模式

201 - 已创建

EgressRouter 模式

202 - 已接受

EgressRouter 模式

401 - 未授权

/apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters/{name}

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

name

字符串

EgressRouter 的名称

HTTP 方法

DELETE

描述

删除 EgressRouter

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

dryRun

字符串

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

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

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 EgressRouter

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

200 - OK

EgressRouter 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressRouter

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

EgressRouter 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressRouter

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressRouter 模式

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

200 - OK

EgressRouter 模式

201 - 已创建

EgressRouter 模式

401 - 未授权

/apis/network.operator.openshift.io/v1/namespaces/{namespace}/egressrouters/{name}/status

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

name

字符串

EgressRouter 的名称

HTTP 方法

GET

描述

读取指定的 EgressRouter 的状态

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

200 - OK

EgressRouter 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressRouter 的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

EgressRouter 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressRouter 的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressRouter 模式

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

200 - OK

EgressRouter 模式

201 - 已创建

EgressRouter 模式

401 - 未授权