×
描述

Endpoints 是实现实际服务的端点集合。示例

 Name: "mysvc",
 Subsets: [
   {
     Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
     Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
   },
   {
     Addresses: [{"ip": "10.10.3.3"}],
     Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]
   },
]
类型

对象

规范

属性 类型 描述

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

subsets

数组

所有端点的集合是所有子集的并集。地址根据它们共享的 IP 放入子集。单个地址具有多个端口,其中一些端口已准备好,而另一些端口尚未准备好(因为它们来自不同的容器),这将导致该地址在不同端口的不同子集中显示。在同一个子集中,任何地址都不会同时出现在 Addresses 和 NotReadyAddresses 中。构成服务的地址和端口集合。

subsets[]

对象

EndpointSubset 是一组具有公共端口集的地址。扩展的端点集是 Addresses x Ports 的笛卡尔积。例如,给定

{ Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }

生成的端点集可以视为

a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ]

.subsets

描述

所有端点的集合是所有子集的并集。地址根据它们共享的 IP 放入子集。单个地址具有多个端口,其中一些端口已准备好,而另一些端口尚未准备好(因为它们来自不同的容器),这将导致该地址在不同端口的不同子集中显示。在同一个子集中,任何地址都不会同时出现在 Addresses 和 NotReadyAddresses 中。构成服务的地址和端口集合。

类型

数组

.subsets[]

描述

EndpointSubset 是一组具有公共端口集的地址。扩展的端点集是 Addresses x Ports 的笛卡尔积。例如,给定

{
  Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
  Ports:     [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
}

生成的端点集可以视为

a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
b: [ 10.10.1.1:309, 10.10.2.2:309 ]
类型

对象

属性 类型 描述

addresses

数组

提供标记为已准备好的相关端口的 IP 地址。这些端点应被认为对于负载均衡器和客户端使用是安全的。

addresses[]

对象

EndpointAddress 是一个描述单个 IP 地址的元组。

notReadyAddresses

数组

提供相关端口但当前未标记为已准备好的 IP 地址,因为它们尚未完成启动,最近未能通过就绪检查,或者最近未能通过存活性检查。

notReadyAddresses[]

对象

EndpointAddress 是一个描述单个 IP 地址的元组。

ports

数组

相关 IP 地址上可用的端口号。

ports[]

对象

EndpointPort 是一个描述单个端口的元组。

.subsets[].addresses

描述

提供标记为已准备好的相关端口的 IP 地址。这些端点应被认为对于负载均衡器和客户端使用是安全的。

类型

数组

.subsets[].addresses[]

描述

EndpointAddress 是一个描述单个 IP 地址的元组。

类型

对象

必需
  • ip

属性 类型 描述

hostname

字符串

此端点的主机名

ip

字符串

此端点的 IP。不能是环回地址 (127.0.0.0/8 或 ::1)、链路本地地址 (169.254.0.0/16 或 fe80::/10) 或链路本地组播地址 (224.0.0.0/24 或 ff02::/16)。

nodeName

字符串

可选:托管此端点的节点。这可以用来确定某个节点本地的端点。

targetRef

对象

ObjectReference 包含足够的信息,允许您检查或修改引用的对象。

.subsets[].addresses[].targetRef

描述

ObjectReference 包含足够的信息,允许您检查或修改引用的对象。

类型

对象

属性 类型 描述

apiVersion

字符串

引用的 API 版本。

fieldPath

字符串

如果引用的是对象的一部分而不是整个对象,则此字符串应包含有效的 JSON/Go 字段访问语句,例如 desiredState.manifest.containers[2]。例如,如果对象引用指向 Pod 中的容器,则其值将类似于: "spec.containers{name}"(其中 "name" 指的是触发事件的容器的名称)或者如果未指定容器名称,则为 "spec.containers[2]"(此 Pod 中索引为 2 的容器)。选择此语法只是为了有一种明确定义的方法来引用对象的一部分。

kind

字符串

引用的 Kind。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

字符串

引用的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

namespace

字符串

引用的命名空间。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

字符串

对此引用所做的特定 resourceVersion(如有)。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

字符串

引用的 UID。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#uids

.subsets[].notReadyAddresses

描述

提供相关端口但当前未标记为已准备好的 IP 地址,因为它们尚未完成启动,最近未能通过就绪检查,或者最近未能通过存活性检查。

类型

数组

.subsets[].notReadyAddresses[]

描述

EndpointAddress 是一个描述单个 IP 地址的元组。

类型

对象

必需
  • ip

属性 类型 描述

hostname

字符串

此端点的主机名

ip

字符串

此端点的 IP。不能是环回地址 (127.0.0.0/8 或 ::1)、链路本地地址 (169.254.0.0/16 或 fe80::/10) 或链路本地组播地址 (224.0.0.0/24 或 ff02::/16)。

nodeName

字符串

可选:托管此端点的节点。这可以用来确定某个节点本地的端点。

targetRef

对象

ObjectReference 包含足够的信息,允许您检查或修改引用的对象。

.subsets[].notReadyAddresses[].targetRef

描述

ObjectReference 包含足够的信息,允许您检查或修改引用的对象。

类型

对象

属性 类型 描述

apiVersion

字符串

引用的 API 版本。

fieldPath

字符串

如果引用的是对象的一部分而不是整个对象,则此字符串应包含有效的 JSON/Go 字段访问语句,例如 desiredState.manifest.containers[2]。例如,如果对象引用指向 Pod 中的容器,则其值将类似于: "spec.containers{name}"(其中 "name" 指的是触发事件的容器的名称)或者如果未指定容器名称,则为 "spec.containers[2]"(此 Pod 中索引为 2 的容器)。选择此语法只是为了有一种明确定义的方法来引用对象的一部分。

kind

字符串

引用的 Kind。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

字符串

引用的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

namespace

字符串

引用的命名空间。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

字符串

对此引用所做的特定 resourceVersion(如有)。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

字符串

引用的 UID。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#uids

.subsets[].ports

描述

相关 IP 地址上可用的端口号。

类型

数组

.subsets[].ports[]

描述

EndpointPort 是一个描述单个端口的元组。

类型

对象

必需
  • port

属性 类型 描述

appProtocol

字符串

此端口的应用程序协议。这被用作提示,供实现为其理解的协议提供更丰富的行为。此字段遵循标准 Kubernetes 标签语法。有效值为:

* 未加前缀的协议名称 - 保留用于 IANA 标准服务名称(根据 RFC-6335 和 https://www.iana.org/assignments/service-names)。

* Kubernetes 定义的前缀名称:* 'kubernetes.io/h2c' - 如 https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- 中所述的明文优先的 HTTP/2 * 'kubernetes.io/ws' - 如 https://www.rfc-editor.org/rfc/rfc6455 中所述的明文 WebSocket * 'kubernetes.io/wss' - 如 https://www.rfc-editor.org/rfc/rfc6455 中所述的 TLS 上的 WebSocket

* 其他协议应使用实现定义的前缀名称,例如 mycompany.com/my-custom-protocol。

name

字符串

此端口的名称。必须与相应的 ServicePort 中的“name”字段匹配。必须是 DNS_LABEL。如果只定义了一个端口,则可选。

port

整数

端点的端口号。

protocol

字符串

此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

API 端点

提供以下 API 端点

  • /api/v1/endpoints

    • GET:列出或监视 Endpoints 类型的对象

  • /api/v1/watch/endpoints

    • GET:监视对 Endpoints 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /api/v1/namespaces/{namespace}/endpoints

    • DELETE:删除 Endpoints 集合

    • GET:列出或监视 Endpoints 类型的对象

    • POST:创建 Endpoints

  • /api/v1/watch/namespaces/{namespace}/endpoints

    • GET:监视对 Endpoints 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /api/v1/namespaces/{namespace}/endpoints/{name}

    • DELETE:删除 Endpoints

    • GET:读取指定的 Endpoints

    • PATCH:部分更新指定的 Endpoints

    • PUT:替换指定的 Endpoints

  • /api/v1/watch/namespaces/{namespace}/endpoints/{name}

    • GET:观察 Endpoints 对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

/api/v1/endpoints

HTTP 方法

GET

描述

列出或观察 Endpoints 对象

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

200 - OK

EndpointsList 模式

401 - 未授权

/api/v1/watch/endpoints

HTTP 方法

GET

描述

观察 Endpoints 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

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

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/endpoints

HTTP 方法

DELETE

描述

删除 Endpoints 集合

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

dryRun

字符串

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

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

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或观察 Endpoints 对象

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

200 - OK

EndpointsList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 Endpoints

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

Endpoints 模式

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

200 - OK

Endpoints 模式

201 - 已创建

Endpoints 模式

202 - 已接受

Endpoints 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/endpoints

HTTP 方法

GET

描述

观察 Endpoints 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

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

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/endpoints/{name}

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

name

字符串

Endpoints 的名称

HTTP 方法

DELETE

描述

删除 Endpoints

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

dryRun

字符串

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

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

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 Endpoints

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

200 - OK

Endpoints 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Endpoints

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

Endpoints 模式

201 - 已创建

Endpoints 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Endpoints

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

Endpoints 模式

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

200 - OK

Endpoints 模式

201 - 已创建

Endpoints 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/endpoints/{name}

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

name

字符串

Endpoints 的名称

HTTP 方法

GET

描述

观察 Endpoints 对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

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

200 - OK

WatchEvent 模式

401 - 未授权