第 11 章 EndpointSlice [discovery.k8s.io/v1]
- 描述
- EndpointSlice 代表实施服务的端点的子集。对于给定服务,可能有多个 EndpointSlice 对象,它们通过标签选择,必须加入来生成完整的端点。
- 类型
-
object
- 必填
-
addressType
-
端点
-
11.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| addressType 指定此 EndpointSlice 执行的地址类型。这个片段中的所有地址都必须是相同的类型。此字段在创建后是不可变的。目前支持以下地址类型:* IPv4:代表 IPv4 地址。* IPv6:代表 IPv6 地址。* FQDN:代表完全限定域名。
可能枚举值: - |
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| 端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。 |
|
| 端点代表实施服务的单一逻辑"后端"。 |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。 | |
|
| ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。当端口为空时,这表明没有定义的端口。当使用 nil port 值定义端口时,它表示 "all ports"。每个片段最多可能包括 100 个端口。 |
|
| EndpointPort 代表 EndpointSlice 使用的端口 |
11.1.1. .endpoints
- 描述
- 端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。
- 类型
-
array
11.1.2. .endpoints[]
- 描述
- 端点代表实施服务的单一逻辑"后端"。
- 类型
-
object
- 必填
-
addresses
-
属性 | 类型 | 描述 |
---|---|---|
|
| 此端点的地址。此字段的内容会根据对应的 EndpointSlice addressType 字段进行解释。消费者必须在自身功能的情况下处理不同类型的地址。这必须至少包含一个地址,但没有超过 100 个。这些都假定是非常有的,客户端可能会选择仅使用第一个元素。请参阅 :https://issue.k8s.io/106267 |
|
| EndpointConditions 代表端点的当前条件。 |
|
| deprecatedTopology 包含 v1beta1 API 的拓扑信息部分。此字段已弃用,并在 v1beta1 API 被删除时删除(不早于 kubernetes v1.24)。虽然此字段可以保存值,但无法通过 v1 API 写入值,但任何尝试写入它都将静默忽略。拓扑信息可在 zone 和 nodeName 字段中找到。 |
|
| EndpointHints 提供了描述如何使用端点的提示。 |
|
| 此端点的主机名。此字段可由端点使用者使用,以区分不同的端点(例如在 DNS 名称中)。使用相同主机名的多个端点应被视为无限(例如,DNS 中的多个 A 值)。必须是小写并传递 DNS 标签(RFC 1123)验证。 |
|
| nodeName 代表托管此端点的节点的名称。这可用于确定本地到节点的端点。 |
| TargetRef 是代表此端点的 Kubernetes 对象的引用。 | |
|
| zone 是此端点所在的区域的名称。 |
11.1.3. .endpoints[].conditions
- 描述
- EndpointConditions 代表端点的当前条件。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Ready 表示此端点已准备好接收流量,具体取决于任何系统正在管理端点。nil 值表示未知状态。在大多数情况下,消费者应将此未知状态解释为就绪。出于兼容性的原因,对于终止端点,ready 不应该为 "true",但当正常就绪度行为被显式覆盖时,例如,相关服务设置了 publishNotReadyAddresses 标志时。 |
|
| serving 与 ready 相同,除了无论端点终止状态如何设置。对于终止的就绪端点,此条件应设为 true。如果为 nil,消费者应该会延迟到 ready 条件。 |
|
| Terminating 表示此端点正在终止。nil 值表示未知状态。消费者应解释这个未知状态,以表示端点没有终止。 |
11.1.4. .endpoints[].hints
- 描述
- EndpointHints 提供了描述如何使用端点的提示。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| forZones 表示此端点应使用的区域,以启用拓扑感知路由。 |
|
| ForZone 提供有关哪些区域应使用此端点的信息。 |
11.1.5. .endpoints[].hints.forZones
- 描述
- forZones 表示此端点应使用的区域,以启用拓扑感知路由。
- 类型
-
array
11.1.6. .endpoints[].hints.forZones[]
- 描述
- ForZone 提供有关哪些区域应使用此端点的信息。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 代表区域的名称。 |
11.1.7. .ports
- 描述
- ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。当端口为空时,这表明没有定义的端口。当使用 nil port 值定义端口时,它表示 "all ports"。每个片段最多可能包括 100 个端口。
- 类型
-
array
11.1.8. .ports[]
- 描述
- EndpointPort 代表 EndpointSlice 使用的端口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 Kubernetes 标签语法。有效值为: * 未前缀的协议名称 - 为 IANA 标准服务名称保留(如 RFC-6335 和 https://www.iana.org/assignments/service-names)。 * Kubernetes-defined prefixed name: * 'kubernetes.io/h2c' - HTTP/2 before knowledge overtext as https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext,如 https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS 所述 * 其他协议应使用定义实施的前缀名称,如 mycompany.com/my-custom-protocol。 |
|
| name 表示此端口的名称。EndpointSlice 中的所有端口都必须具有唯一的名称。如果 EndpointSlice 派生自 Kubernetes 服务,则对应于 Service.ports[].name。name 必须是空字符串或传递 DNS_LABEL 验证:* 不得超过 63 个字符。* 必须包含小写字母数字字符或 '-'。* 必须以字母数字字符开头和结尾。默认为空字符串。 |
|
| port 代表端点的端口号。如果没有指定,则端口不会被限制,必须在特定消费者的上下文中解释端口。 |
|
| protocol 代表此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。
可能枚举值: - |