15.6. EgressRouter [network.operator.openshift.io/v1]
- 描述
- EgressRouter 是一个功能,允许用户定义一个出口路由器,它充当 pod 和外部系统间的桥接。出口路由器运行一个服务,它会根据配置将来自 pod 或一组 pod 的出口流量重定向到远程外部系统或多个目的地。它由 cluster-network-operator 使用。更具体地说,对于一个带有 <name> 的 EgressRouter CR,CNO 将创建和管理: - 名为 <name> - 名为 <name> 的出口 pod - 名为 <name> 兼容性级别 1: Stable 至少 12 个月或 3 个次版本(以更长的时间为准)。EgressRouter 是一个出口路由器 pod 配置对象。
- 类型
-
对象
- 必填
-
spec
-
15.6.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 | |
|
| 所需的出口路由器规格。 |
|
| 观察 EgressRouter 的状态。 |
15.6.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- 所需的出口路由器规格。
- 类型
-
对象
- 必填
-
addresses
-
模式
-
networkInterface
-
属性 | 类型 | 描述 |
---|---|---|
|
| 要在 pod 二级接口上配置的 IP 地址列表。 |
|
| EgressRouterAddress 包含在路由器接口上配置的 IP CIDR 和网关对 |
|
| 模式描述了用于出口路由器的模式。默认模式是 "Redirect",它是当前唯一支持的模式。 |
|
| 要创建/使用的接口规格。默认为 macvlan。目前只支持 macvlan。 |
|
| redirect 代表特定于重定向模式的配置参数。 |
15.6.1.2. .spec.addresses 复制链接链接已复制到粘贴板!
- 描述
- 要在 pod 二级接口上配置的 IP 地址列表。
- 类型
-
array
15.6.1.3. .spec.addresses[] 复制链接链接已复制到粘贴板!
- 描述
- EgressRouterAddress 包含在路由器接口上配置的 IP CIDR 和网关对
- 类型
-
对象
- 必填
-
ip
-
属性 | 类型 | 描述 |
---|---|---|
|
| 下一步网关的 IP 地址(如果无法自动决定)。可以是 IPv4 或 IPv6。 |
|
| IP 是要在路由器接口上配置的地址。可以是 IPv4 或 IPv6。 |
15.6.1.4. .spec.networkInterface 复制链接链接已复制到粘贴板!
- 描述
- 要创建/使用的接口规格。默认为 macvlan。目前只支持 macvlan。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| 特定于 interfaceType macvlan 的参数 |
15.6.1.5. .spec.networkInterface.macvlan 复制链接链接已复制到粘贴板!
- 描述
- 特定于 interfaceType macvlan 的参数
- 类型
-
对象
- 必填
-
模式
-
属性 | 类型 | 描述 |
---|---|---|
|
| master 接口的名称。如果可以从 IP 地址推断出来,则需要指定它。 |
|
| 模式描述了用于 macvlan 接口的模式;其中一个 Bridge|Private|VEPA|Passthru。默认模式是 "Bridge"。 |
15.6.1.6. .spec.redirect 复制链接链接已复制到粘贴板!
- 描述
- redirect 代表特定于重定向模式的配置参数。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| fallbackIP 指定远程目的地的 IP 地址。可以是 IPv4 或 IPv6。如果没有指定重定向规则,来自路由器的所有流量都会被重定向到此 IP。如果指定了重定向规则,那么路由器上任何其他端口(未定义)上的任何连接都将重定向到此 IP。如果指定了重定向规则,且没有提供回退 IP,则其他端口上的连接将被拒绝。 |
|
| 以重定向模式定义从 pod 重定向到目的地的 L4RedirectRules 列表。 |
|
| L4RedirectRule 定义从给定端口到目标 IP 和端口的 192.168.1.0/24 重定向。 |
15.6.1.7. .spec.redirect.redirectRules 复制链接链接已复制到粘贴板!
- 描述
- 以重定向模式定义从 pod 重定向到目的地的 L4RedirectRules 列表。
- 类型
-
array
15.6.1.8. .spec.redirect.redirectRules[] 复制链接链接已复制到粘贴板!
- 描述
- L4RedirectRule 定义从给定端口到目标 IP 和端口的 192.168.1.0/24 重定向。
- 类型
-
对象
- 必填
-
destinationIP
-
port
-
protocol
-
属性 | 类型 | 描述 |
---|---|---|
|
| ip 指定远程目的地的 IP 地址。可以是 IPv4 或 IPv6。 |
|
| port 是客户端应向重定向到的端口号。 |
|
| 协议可以是 TCP、SCTP 或 UDP。 |
|
| targetPort 允许指定流量重定向到的远程目的地上的端口号。如果未指定,则使用 "Port" 的值。 |
15.6.1.9. .status 复制链接链接已复制到粘贴板!
- 描述
- 观察 EgressRouter 的状态。
- 类型
-
对象
- 必填
-
conditions
-
属性 | 类型 | 描述 |
---|---|---|
|
| 观察出口路由器的状态 |
|
| EgressRouterStatusCondition 代表出口路由器的管理和监控组件的状态。 |
15.6.1.10. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 观察出口路由器的状态
- 类型
-
array
15.6.1.11. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- EgressRouterStatusCondition 代表出口路由器的管理和监控组件的状态。
- 类型
-
对象
- 必填
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
| `` | lastTransitionTime 是当前 status 属性最后一次更新的时间。 |
|
| 消息提供有关当前条件的附加信息。这仅由人类使用。它可以包含行 Feed 字符(U+000A),这些字符应呈现为新行。 |
|
| reason 是条件当前状态的 CamelCase 原因。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| Type 指定此状况报告的方面 ; Available, Progressing, Degraded 之一 |
15.6.2. 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 的状态
-
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须在没有 continue 字段的情况下重启其列表。否则,客户端可能会发送另一个列表请求,并带有 410 错误收到的令牌,服务器将通过从下一个密钥开始的列表进行响应,但从最新的快照(从最后一个列表结果中不一致) - 在第一个列表请求后创建、修改或删除的对象将包含在响应中,只要其密钥在"next key"后。 当 watch 为 true 时,不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值启动监视,而不丢失任何修改。 |
|
| 用于限制返回的对象列表的选择器。默认为任何内容。 |
|
| 通过标签限制返回的对象列表的选择器。默认为任何内容。 |
|
| 限制是列表调用要返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设置为可用于同一初始查询的值,以检索下一个结果集。在过滤所有请求的对象时,设置限制可能会返回比请求的项目数量少(最多为零项),客户端应只使用 continue 字段的存在来确定是否有更多结果可用。服务器可以选择不支持限制参数,并将返回所有可用的结果。如果指定了限制,并且 continue 字段为空,客户端可能会假设没有更多可用的结果。如果 watch 为 true,则不支持此字段。 服务器保证在使用 continue 时返回的对象与在没有限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后不会创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制的客户端接收一个非常大的结果较小的块可以确保它们看到所有可能的对象。如果在块列出期间更新对象,则返回第一次列表结果时存在的对象版本。 |
|
| 如果 'true',则输出被用户友善。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定 resourceVersion 如何应用到列出调用。强烈建议您为设置了 resourceVersion 的列表调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| list/watch 调用的超时。这限制了调用的时间,无论任何活动或不活跃。 |
|
| 观察对描述的资源的更改,并将其作为添加、更新和删除通知流返回。指定 resourceVersion。 |
- HTTP 方法
-
GET
- 描述
- 列出 EgressRouter 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| 对象名称和身份验证范围,如团队和项目 |
参数 | 类型 | 描述 |
---|---|---|
|
| 如果 'true',则输出被用户友善。 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressRouter 集合
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须在没有 continue 字段的情况下重启其列表。否则,客户端可能会发送另一个列表请求,并带有 410 错误收到的令牌,服务器将通过从下一个密钥开始的列表进行响应,但从最新的快照(从最后一个列表结果中不一致) - 在第一个列表请求后创建、修改或删除的对象将包含在响应中,只要其密钥在"next key"后。 当 watch 为 true 时,不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值启动监视,而不丢失任何修改。 |
|
| 用于限制返回的对象列表的选择器。默认为任何内容。 |
|
| 通过标签限制返回的对象列表的选择器。默认为任何内容。 |
|
| 限制是列表调用要返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设置为可用于同一初始查询的值,以检索下一个结果集。在过滤所有请求的对象时,设置限制可能会返回比请求的项目数量少(最多为零项),客户端应只使用 continue 字段的存在来确定是否有更多结果可用。服务器可以选择不支持限制参数,并将返回所有可用的结果。如果指定了限制,并且 continue 字段为空,客户端可能会假设没有更多可用的结果。如果 watch 为 true,则不支持此字段。 服务器保证在使用 continue 时返回的对象与在没有限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后不会创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制的客户端接收一个非常大的结果较小的块可以确保它们看到所有可能的对象。如果在块列出期间更新对象,则返回第一次列表结果时存在的对象版本。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定 resourceVersion 如何应用到列出调用。强烈建议您为设置了 resourceVersion 的列表调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| list/watch 调用的超时。这限制了调用的时间,无论任何活动或不活跃。 |
|
| 观察对描述的资源的更改,并将其作为添加、更新和删除通知流返回。指定 resourceVersion。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出 EgressRouter 类型的对象
参数 | 类型 | 描述 |
---|---|---|
|
| allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。 |
|
| 从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须在没有 continue 字段的情况下重启其列表。否则,客户端可能会发送另一个列表请求,并带有 410 错误收到的令牌,服务器将通过从下一个密钥开始的列表进行响应,但从最新的快照(从最后一个列表结果中不一致) - 在第一个列表请求后创建、修改或删除的对象将包含在响应中,只要其密钥在"next key"后。 当 watch 为 true 时,不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值启动监视,而不丢失任何修改。 |
|
| 用于限制返回的对象列表的选择器。默认为任何内容。 |
|
| 通过标签限制返回的对象列表的选择器。默认为任何内容。 |
|
| 限制是列表调用要返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设置为可用于同一初始查询的值,以检索下一个结果集。在过滤所有请求的对象时,设置限制可能会返回比请求的项目数量少(最多为零项),客户端应只使用 continue 字段的存在来确定是否有更多结果可用。服务器可以选择不支持限制参数,并将返回所有可用的结果。如果指定了限制,并且 continue 字段为空,客户端可能会假设没有更多可用的结果。如果 watch 为 true,则不支持此字段。 服务器保证在使用 continue 时返回的对象与在没有限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后不会创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制的客户端接收一个非常大的结果较小的块可以确保它们看到所有可能的对象。如果在块列出期间更新对象,则返回第一次列表结果时存在的对象版本。 |
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
|
| resourceVersionMatch 决定 resourceVersion 如何应用到列出调用。强烈建议您为设置了 resourceVersion 的列表调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions。 默认为未设置 |
|
| list/watch 调用的超时。这限制了调用的时间,无论任何活动或不活跃。 |
|
| 观察对描述的资源的更改,并将其作为添加、更新和删除通知流返回。指定 resourceVersion。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressRouter 的名称 |
|
| 对象名称和身份验证范围,如团队和项目 |
参数 | 类型 | 描述 |
---|---|---|
|
| 如果 'true',则输出被用户友善。 |
- HTTP 方法
-
DELETE
- 描述
- 删除 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| 应该删除对象前的持续时间(以秒为单位)。值必须是非负整数。值零表示立即删除。如果这个值是 nil,则使用指定类型的默认宽限期。如果没有指定,则默认为每个对象值。零表示立即删除。 |
|
| 弃用:请使用 PropagationPolicy,此字段将在 1.7 中被弃用。应该依赖的对象被孤立。如果为 true/false,"orphan"终结器将从对象的终结器列表添加到/删除。可以设置此字段或 PropagationPolicy,但不能同时设置两者。 |
|
| 是否以及是否执行垃圾回收。此字段或 OrphanDependents 可以设置,但不能同时设置两者。默认策略由 metadata.finalizers 和特定于资源的默认策略中设置的现有终结器决定。可接受的值为: 'Orphan' - 孤立依赖; 'Background' - 允许垃圾收集器在后台删除依赖的依赖关系; 'Foreground' - 一个删除前台所有依赖的级联策略。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 EgressRouter
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
参数 | 类型 | 描述 |
---|---|---|
|
| EgressRouter 的名称 |
|
| 对象名称和身份验证范围,如团队和项目 |
参数 | 类型 | 描述 |
---|---|---|
|
| 如果 'true',则输出被用户友善。 |
- HTTP 方法
-
GET
- 描述
- 指定 EgressRouter 的读取状态
参数 | 类型 | 描述 |
---|---|---|
|
| resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions 默认为未设置 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 指定 EgressRouter 的部分更新状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 EgressRouter 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |