启用 EndpointSlices

    你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 如果你还没有集群,你可以通过 构建一 个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:

    要获知版本信息,请输入 .

    介绍

    EndpointSlice (端点切片)为 Kubernetes Endpoints 提供了可伸缩和可扩展的替代方案。 它们建立在 Endpoints 提供的功能基础之上,并以可伸缩的方式进行扩展。 当 Service 具有大量(>100)网络端点时,它们将被分成多个较小的 EndpointSlice 资源, 而不是单个大型 Endpoints 资源。

    Kubernetes 中的 EndpointSlice 功能包含若干不同组件。它们中的大部分都是 默认被启用的:

    • EndpointSlice API:EndpointSlice 隶属于 discovery.k8s.io/v1beta1 API。 此 API 处于 Beta 阶段,从 Kubernetes 1.17 开始默认被启用。 下面列举的所有组件都依赖于此 API 被启用。
    • EndpointSliceMirroring 控制器:此 控制器 将自定义的 Endpoints 映射为 EndpointSlice。 控制器受 特性门控控制。该特性门控自 1.19 开始被默认启用。

    • kube-proxy:当 被配置为使用 EndpointSlice 时,它会支持更大数量的 Service 端点。 此功能在 Linux 上受 EndpointSliceProxying 特性门控控制;在 Windows 上受 WindowsEndpointSliceProxying 特性门控控制。 在 Linux 上,从 Kubernetes 1.19 版本起自动启用。目前尚未在 Windows 节点 上默认启用。 要在 Windows 节点上配置 kube-proxy 使用 EndpointSlice,你需要为 kube-proxy 启用 WindowsEndpointSliceProxying 特性门控

    API 字段

    EndpointSlice API 中的某些字段有对应的特性门控控制。

    • 特性门控控制对 nodeName 字段的访问。这是默认情况下禁用的 Alpha 功能。
    • EndpointSliceTerminating 特性门控控制对 serving 和 状况字段的访问。这是默认情况下禁用的 Alpha 功能。

    在集群中完全启用 EndpointSlice 的情况下,你应该看到对应于每个 Endpoints 资源的 EndpointSlice 资源。除了支持现有的 Endpoints 功能外, EndpointSlices 将允许集群中网络端点更好的可伸缩性和可扩展性。

    接下来

    • 参阅