×
描述

EgressIP 是一个 CRD,允许用户为所有来自任何 Pod 的出站流量定义固定的源 IP,这些 Pod 根据其 spec 定义与 EgressIP 资源匹配。

类型

对象

必需
  • 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

对象

EgressIP 期望行为的规范。

status

对象

EgressIP 的观察状态。只读。

.spec

描述

EgressIP 期望行为的规范。

类型

对象

必需
  • egressIPs

  • namespaceSelector

属性 类型 描述

egressIPs

数组 (字符串)

EgressIPs 是请求的出站 IP 地址列表。可以是 IPv4 和/或 IPv6。此字段是必填字段。

namespaceSelector

对象

NamespaceSelector 仅将出站 IP 应用于其标签与此定义匹配的命名空间。此字段是必填字段。

podSelector

对象

PodSelector 仅将出站 IP 应用于其标签与此定义匹配的 Pod。此字段是可选字段,如果未设置:则导致将出站 IP 应用于 NamespaceSelector 匹配的命名空间中的所有 Pod。如果设置:则与 NamespaceSelector 相交,从而将出站 IP 应用于与此 Pod 选择器匹配的 Pod(在 NamespaceSelector 已匹配的命名空间中)。

.spec.namespaceSelector

描述

NamespaceSelector 仅将出站 IP 应用于其标签与此定义匹配的命名空间。此字段是必填字段。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchLabels

对象 (字符串)

matchLabels 是一个 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为 "key",运算符为 "In",而 values 数组仅包含 "value"。这些要求使用 AND 逻辑连接。

.spec.namespaceSelector.matchExpressions

描述

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

类型

数组

.spec.namespaceSelector.matchExpressions[]

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

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

operator

字符串

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

values

数组 (字符串)

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

.spec.podSelector

描述

PodSelector 仅将出站 IP 应用于其标签与此定义匹配的 Pod。此字段是可选字段,如果未设置:则导致将出站 IP 应用于 NamespaceSelector 匹配的命名空间中的所有 Pod。如果设置:则与 NamespaceSelector 相交,从而将出站 IP 应用于与此 Pod 选择器匹配的 Pod(在 NamespaceSelector 已匹配的命名空间中)。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchLabels

对象 (字符串)

matchLabels 是一个 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为 "key",运算符为 "In",而 values 数组仅包含 "value"。这些要求使用 AND 逻辑连接。

.spec.podSelector.matchExpressions

描述

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

类型

数组

.spec.podSelector.matchExpressions[]

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

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

operator

字符串

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

values

数组 (字符串)

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

.status

描述

EgressIP 的观察状态。只读。

类型

对象

必需
  • items

属性 类型 描述

items

数组

已分配的出站 IP 及其对应的节点分配列表。

items[]

对象

针对那些已分配出站 IP 的节点的状态。

.status.items

描述

已分配的出站 IP 及其对应的节点分配列表。

类型

数组

.status.items[]

描述

针对那些已分配出站 IP 的节点的状态。

类型

对象

必需
  • egressIP

  • node

属性 类型 描述

egressIP

字符串

已分配的出站 IP

node

字符串

已分配的节点名称

API 端点

提供以下 API 端点:

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

    • DELETE: 删除 EgressIP 集合

    • GET: 列出 EgressIP 对象

    • POST: 创建一个 EgressIP

  • /apis/k8s.ovn.org/v1/egressips/{name}

    • DELETE: 删除一个 EgressIP

    • GET: 读取指定的 EgressIP

    • PATCH: 部分更新指定的 EgressIP

    • PUT: 替换指定的 EgressIP

/apis/k8s.ovn.org/v1/egressips

HTTP 方法

DELETE

描述

删除 EgressIP 集合

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

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 EgressIP 对象

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

200 - OK

EgressIPList 模式

401 - 未授权

HTTP 方法

POST

描述

创建一个 EgressIP

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressIP 模式

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

200 - OK

EgressIP 模式

201 - 已创建

EgressIP 模式

202 - 已接受

EgressIP 模式

401 - 未授权

/apis/k8s.ovn.org/v1/egressips/{name}

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

name

字符串

EgressIP 的名称

HTTP 方法

DELETE

描述

删除一个 EgressIP

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

dryRun

字符串

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

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

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 EgressIP

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

200 - OK

EgressIP 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 EgressIP

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

EgressIP 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 EgressIP

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

EgressIP 模式

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

200 - OK

EgressIP 模式

201 - 已创建

EgressIP 模式

401 - 未授权