第 12 章 EndpointSlice [discovery.k8s.io/v1]


描述
EndpointSlice 代表一组服务端点。大多数 EndpointSlice 由 EndpointSlice 控制器创建,以表示由 Service 对象选择的 Pod。对于给定服务,可能存在必须加入多个 EndpointSlice 对象来生成完整端点;您可以通过列出服务命名空间中的 EndpointSlices 来找到给定服务的所有分片,其 kubernetes.io/service-name 标签包含服务名称。
类型
object
必填
  • addressType
  • 端点

12.1. 规格

Expand
属性类型描述

addressType

字符串

addressType 指定此 EndpointSlice 执行的地址类型。这个片段中的所有地址都必须是相同的类型。此字段在创建后是不可变的。目前支持以下地址类型:* IPv4:代表 IPv4 地址。* IPv6:代表 IPv6 地址。* FQDN:代表完全限定域名。(已弃用) EndpointSlice 控制器只生成、kube-proxy 仅进程、addressType "IPv4" 和 "IPv6" 的片段。没有为 "FQDN" 类型定义语义。

可能枚举值: - "FQDN" 代表 FQDN。- "IPv4" 代表 IPv4 地址。- "IPv6" 代表 IPv6 地址。

apiVersion

string

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

端点

array

端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。

endpoints[]

对象

端点代表实施服务的单一逻辑"后端"。

kind

string

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。

ports

array

ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。每个片段最多可能包括 100 个端口。服务至少具有 1 端口,因此 EndpointSlice 控制器生成的 EndpointSlices 同样始终具有至少 1 端口。用于其他目的的 endpointslices 可能有一个空端口列表。

ports[]

对象

EndpointPort 代表 EndpointSlice 使用的端口

12.1.1. .endpoints

描述
端点是此片段中唯一端点的列表。每个片段最多可能包括 1000 个端点。
类型
array

12.1.2. .endpoints[]

描述
端点代表实施服务的单一逻辑"后端"。
类型
object
必填
  • addresses
Expand
属性类型描述

addresses

数组(字符串)

此端点的地址。对于 addressType "IPv4" 或 "IPv6" 的 EndpointSlices,值是规范形式的 IP 地址。未定义其他 addressType 值的语法和语义。这必须至少包含一个地址,但没有超过 100 个。EndpointSlice 控制器生成的 endpointslices 始终具有 1 地址。没有为第一个地址以外的其他地址定义语义,kube-proxy 不会查看它们。

conditions

对象

EndpointConditions 代表端点的当前条件。

deprecatedTopology

对象(字符串)

deprecatedTopology 包含 v1beta1 API 的拓扑信息部分。此字段已弃用,并在 v1beta1 API 被删除时删除(不早于 kubernetes v1.24)。虽然此字段可以保存值,但无法通过 v1 API 写入值,但任何尝试写入它都将静默忽略。拓扑信息可在 zone 和 nodeName 字段中找到。

hints

对象

EndpointHints 提供了描述如何使用端点的提示。

hostname

字符串

此端点的主机名。此字段可由端点使用者使用,以区分不同的端点(例如在 DNS 名称中)。使用相同主机名的多个端点应被视为无限(例如,DNS 中的多个 A 值)。必须是小写并传递 DNS 标签(RFC 1123)验证。

nodeName

字符串

nodeName 代表托管此端点的节点的名称。这可用于确定本地到节点的端点。

targetRef

ObjectReference

TargetRef 是代表此端点的 Kubernetes 对象的引用。

zone

字符串

zone 是此端点所在的区域的名称。

12.1.3. .endpoints[].conditions

描述
EndpointConditions 代表端点的当前条件。
类型
object
Expand
属性类型描述

ready

布尔值

Ready 表示此端点已准备好接收流量,具体取决于任何系统正在管理端点。nil 值应解释为 "true"。通常,如果端点服务且未终止,则端点应标记为 ready,但在某些情况下可以被覆盖,比如在关联的服务设置了 publishNotReadyAddresses 标志时。

serving

布尔值

serving 表示此端点可以根据管理端点的任何系统接收流量。对于 pod 支持的端点,如果 pod 的 Ready 条件为 True,则 EndpointSlice 控制器会将端点标记为 service。nil 值应解释为 "true"。

Terminating

布尔值

Terminating 表示此端点正在终止。nil 值应解释为 "false"。

12.1.4. .endpoints[].hints

描述
EndpointHints 提供了描述如何使用端点的提示。
类型
object
Expand
属性类型描述

forNodes

数组

forNodes 表示在使用拓扑感知路由时此端点应该被消耗的节点。最多可包含 8 个条目。这是一个 Alpha 功能,仅在启用 PreferSameTrafficDistribution 功能门时使用。

forNodes[]

object

ForNode 提供有关哪些节点应该消耗此端点的信息。

forZones

数组

forZones 表示在使用拓扑感知路由时此端点应使用的区域。最多可包含 8 个条目。

forZones[]

对象

ForZone 提供有关哪些区域应使用此端点的信息。

12.1.5. .endpoints[].hints.forNodes

描述
forNodes 表示在使用拓扑感知路由时此端点应该被消耗的节点。最多可包含 8 个条目。这是一个 Alpha 功能,仅在启用 PreferSameTrafficDistribution 功能门时使用。
类型
数组

12.1.6. .endpoints[].hints.forNodes[]

描述
ForNode 提供有关哪些节点应该消耗此端点的信息。
类型
object
必填
  • name
Expand
属性类型描述

name

string

name 代表节点的名称。

12.1.7. .endpoints[].hints.forZones

描述
forZones 表示在使用拓扑感知路由时此端点应使用的区域。最多可包含 8 个条目。
类型
array

12.1.8. .endpoints[].hints.forZones[]

描述
ForZone 提供有关哪些区域应使用此端点的信息。
类型
object
必填
  • name
Expand
属性类型描述

name

字符串

name 代表区域的名称。

12.1.9. .ports

描述
ports 指定此片段中每个端点公开的网络端口列表。每个端口都必须具有唯一的名称。每个片段最多可能包括 100 个端口。服务至少具有 1 端口,因此 EndpointSlice 控制器生成的 EndpointSlices 同样始终具有至少 1 端口。用于其他目的的 endpointslices 可能有一个空端口列表。
类型
array

12.1.10. .ports[]

描述
EndpointPort 代表 EndpointSlice 使用的端口
类型
object
Expand
属性类型描述

appProtocol

字符串

此端口的应用程序协议。这用作实现的提示,以便为它们理解的协议提供更丰富的行为。此字段遵循标准 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

string

name 表示此端口的名称。EndpointSlice 中的所有端口都必须具有唯一的名称。如果 EndpointSlice 派生自 Kubernetes 服务,则对应于 Service.ports[].name。name 必须是空字符串或传递 DNS_LABEL 验证:* 不得超过 63 个字符。* 必须包含小写字母数字字符或 '-'。* 必须以字母数字字符开头和结尾。默认为空字符串。

port

整数

port 代表端点的端口号。如果 EndpointSlice 派生自 Kubernetes 服务,则必须将其设置为服务的目标端口。用于其他目的的端点slices 可能会有一个 nil 端口。

protocol

string

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

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat