• Endpoint Slices
    • Endpoint Slice 资源
    • 动机
    • 接下来
    • 反馈

    Endpoint Slices

    FEATURE STATE: Kubernetes v1.16feature-state-alpha.txtThis feature is currently in a alpha state, meaning:

    • The version names contain alpha (e.g. v1alpha1).
    • Might be buggy. Enabling the feature may expose bugs. Disabled by default.
    • Support for feature may be dropped at any time without notice.
    • The API may change in incompatible ways in a later software release without notice.
    • Recommended for use only in short-lived testing clusters, due to increased risk of bugs and lack of long-term support.

    Endpoint Slices 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。它们为 Endpoints 提供了一种可伸缩和可拓展的替代方案。

    Endpoint Slice 资源

    在 Kubernetes 中,Endpoint Slice包含对一组网络端点的引用。指定选择器后,EndpointSlice 控制器会自动为 Kubernetes 服务创建 Endpoint Slices。这些 Endpoint Slices 将包含对与服务选择器匹配的所有 Pod 的引用。Endpoint Slices 通过唯一的服务和端口组合将网络端点组织在一起。

    例如,这里是 Kubernetes服务 example 的示例 EndpointSlice 资源。

    1. apiVersion: discovery.k8s.io/v1alpha1
    2. kind: EndpointSlice
    3. metadata:
    4. name: example-abc
    5. labels:
    6. kubernetes.io/service-name: example
    7. addressType: IP
    8. ports:
    9. - name: http
    10. protocol: TCP
    11. port: 80
    12. endpoints:
    13. - addresses:
    14. - "10.1.2.3"
    15. - "2001:db8::1234:5678"
    16. conditions:
    17. ready: true
    18. hostname: pod-1
    19. topology:
    20. kubernetes.io/hostname: node-1
    21. topology.kubernetes.io/zone: us-west2-a

    默认情况下,由 EndpointSlice 控制器管理的 Endpoint Slice 将有不超过 100 个 endpoints。低于此比例时,Endpoint Slices 应与 Endpoints 和服务进行 1:1 映射,并具有相似的性能。

    当涉及如何路由内部流量时,Endpoint Slices 可以充当 kube-proxy 的真实来源。启用该功能后,在服务的 endpoints 规模庞大时会有可观的性能提升。

    动机

    Endpoints API 提供了一种简单明了的方法在 Kubernetes 中跟踪网络端点。不幸的是,随着 Kubernetes 集群与服务的增长,该 API 的局限性变得更加明显。最值得注意的是,这包含了扩展到更多网络端点的挑战。

    由于服务的所有网络端点都存储在单个 Endpoints 资源中,因此这些资源可能会变得很大。这影响了 Kubernetes 组件(尤其是主控制平面)的性能,并在 Endpoints 发生更改时导致大量网络流量和处理。Endpoint Slices 可帮助您缓解这些问题并提供可扩展的附加特性(例如拓扑路由)平台。

    接下来

    • 启用 Endpoint Slices
    • 阅读 Connecting Applications with Services

    反馈

    此页是否对您有帮助?

    感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问Stack Overflow.在 GitHub 仓库上登记新的问题报告问题或者提出改进建议.