第 12 章 EndpointSlice [discovery.k8s.io/v1]
- 描述
-
EndpointSlice 代表一组服务端点。大多数 EndpointSlice 由 EndpointSlice 控制器创建,以表示由 Service 对象选择的 Pod。对于给定服务,可能存在必须加入多个 EndpointSlice 对象来生成完整端点;您可以通过列出服务命名空间中的 EndpointSlices 来找到给定服务的所有分片,其
kubernetes.io/service-name
标签包含服务名称。 - 类型
-
object
- 必填
-
addressType
-
端点
-
12.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| addressType 指定此 EndpointSlice 执行的地址类型。这个片段中的所有地址都必须是相同的类型。此字段在创建后是不可变的。目前支持以下地址类型:* IPv4:代表 IPv4 地址。* IPv6:代表 IPv6 地址。* FQDN:代表完全限定域名。(已弃用) EndpointSlice 控制器只生成、kube-proxy 仅进程、addressType "IPv4" 和 "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 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。每个片段最多可能包括 100 个端口。服务至少具有 1 端口,因此 EndpointSlice 控制器生成的 EndpointSlices 同样始终具有至少 1 端口。用于其他目的的 endpointslices 可能有一个空端口列表。 |
|
| EndpointPort 代表 EndpointSlice 使用的端口 |
12.1.1. .endpoints 复制链接链接已复制到粘贴板!
- 描述
- 端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。
- 类型
-
array
12.1.2. .endpoints[] 复制链接链接已复制到粘贴板!
- 描述
- 端点代表实施服务的单一逻辑"后端"。
- 类型
-
object
- 必填
-
addresses
-
属性 | 类型 | 描述 |
---|---|---|
|
| 此端点的地址。对于 addressType "IPv4" 或 "IPv6" 的 EndpointSlices,值是规范形式的 IP 地址。未定义其他 addressType 值的语法和语义。这必须至少包含一个地址,但没有超过 100 个。EndpointSlice 控制器生成的 endpointslices 始终具有 1 地址。没有为第一个地址以外的其他地址定义语义,kube-proxy 不会查看它们。 |
|
| EndpointConditions 代表端点的当前条件。 |
|
| deprecatedTopology 包含 v1beta1 API 的拓扑信息部分。此字段已弃用,并在 v1beta1 API 被删除时删除(不早于 kubernetes v1.24)。虽然此字段可以保存值,但无法通过 v1 API 写入值,但任何尝试写入它都将静默忽略。拓扑信息可在 zone 和 nodeName 字段中找到。 |
|
| EndpointHints 提供了描述如何使用端点的提示。 |
|
| 此端点的主机名。此字段可由端点使用者使用,以区分不同的端点(例如在 DNS 名称中)。使用相同主机名的多个端点应被视为无限(例如,DNS 中的多个 A 值)。必须是小写并传递 DNS 标签(RFC 1123)验证。 |
|
| nodeName 代表托管此端点的节点的名称。这可用于确定本地到节点的端点。 |
| TargetRef 是代表此端点的 Kubernetes 对象的引用。 | |
|
| zone 是此端点所在的区域的名称。 |
12.1.3. .endpoints[].conditions 复制链接链接已复制到粘贴板!
- 描述
- EndpointConditions 代表端点的当前条件。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Ready 表示此端点已准备好接收流量,具体取决于任何系统正在管理端点。nil 值应解释为 "true"。通常,如果端点服务且未终止,则端点应标记为 ready,但在某些情况下可以被覆盖,比如在关联的服务设置了 publishNotReadyAddresses 标志时。 |
|
| serving 表示此端点可以根据管理端点的任何系统接收流量。对于 pod 支持的端点,如果 pod 的 Ready 条件为 True,则 EndpointSlice 控制器会将端点标记为 service。nil 值应解释为 "true"。 |
|
| Terminating 表示此端点正在终止。nil 值应解释为 "false"。 |
12.1.4. .endpoints[].hints 复制链接链接已复制到粘贴板!
- 描述
- EndpointHints 提供了描述如何使用端点的提示。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| forNodes 表示在使用拓扑感知路由时此端点应该被消耗的节点。最多可包含 8 个条目。这是一个 Alpha 功能,仅在启用 PreferSameTrafficDistribution 功能门时使用。 |
|
| ForNode 提供有关哪些节点应该消耗此端点的信息。 |
|
| forZones 表示在使用拓扑感知路由时此端点应使用的区域。最多可包含 8 个条目。 |
|
| ForZone 提供有关哪些区域应使用此端点的信息。 |
12.1.5. .endpoints[].hints.forNodes 复制链接链接已复制到粘贴板!
- 描述
- forNodes 表示在使用拓扑感知路由时此端点应该被消耗的节点。最多可包含 8 个条目。这是一个 Alpha 功能,仅在启用 PreferSameTrafficDistribution 功能门时使用。
- 类型
-
数组
12.1.6. .endpoints[].hints.forNodes[] 复制链接链接已复制到粘贴板!
- 描述
- ForNode 提供有关哪些节点应该消耗此端点的信息。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 代表节点的名称。 |
12.1.7. .endpoints[].hints.forZones 复制链接链接已复制到粘贴板!
- 描述
- forZones 表示在使用拓扑感知路由时此端点应使用的区域。最多可包含 8 个条目。
- 类型
-
array
12.1.8. .endpoints[].hints.forZones[] 复制链接链接已复制到粘贴板!
- 描述
- ForZone 提供有关哪些区域应使用此端点的信息。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 代表区域的名称。 |
12.1.9. .ports 复制链接链接已复制到粘贴板!
- 描述
- ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。每个片段最多可能包括 100 个端口。服务至少具有 1 端口,因此 EndpointSlice 控制器生成的 EndpointSlices 同样始终具有至少 1 端口。用于其他目的的 endpointslices 可能有一个空端口列表。
- 类型
-
array
12.1.10. .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 代表端点的端口号。如果 EndpointSlice 派生自 Kubernetes 服务,则必须将其设置为服务的目标端口。用于其他目的的端点slices 可能会有一个 nil 端口。 |
|
| protocol 代表此端口的 IP 协议。必须是 UDP、TCP 或 SCTP。默认为 TCP。
可能枚举值: - |