Kubernetes--端点分片

一、Service面临问题(会更新所有Node上的Endpoint)
    Service的后端是一组Endpoint列表, 为客户端端应用提供了极大的便利。但是随着集群规模的扩大以及Service数量的增加,尤其是Service后端Endpoint数量的增加,kube-proxy需要维护的负载分发规则(例如iptables规则或ipvs)数量也会急剧增加,导致后续对Service后端Endpoint的增加、删除等更新操作成本急剧上升。例如:在kubernetes集群中有10000个Endpoint运行大约5000个Node上,则对单个Pod更新需要约5GB的数据传输,这不进对集群内的网络带宽浪费巨大,而对Master的冲击非常大,会影响Kubernetes整体的性能,在Deployment不断进行滚动升级情况下由于突出。
二、端点分片机制
     Kubernetes1.6开始引入端点分片(Endpoint Slices)机制,引入新的EndpointSlice资源对象和一个新的EndpointSlice控制器。EndpointSlice通过对Endpoint分配管理来实现降低Master和各个Node之间的网络传输数量及提高整体性能目标。对与Deployment的滚动升级,可以实现更新部分Node上的Endpoint信息,Master和Node之间的数据传输减少了100倍左右,很大程度上提高了管理效率。
    EndpointSlice根据Endpoint所在的Node的拓扑信息进行分配管理。

      Endpoint Slice要实现第2 个目标为基于Node拓扑的服务路由提供支持,这需要与服务拓扑(Service Topology)机制共同实现。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Kubernetes API和Kubernetes Exporter之间没有直接的接口。让我解释一下它们之间的关系和工作原理: 1. Kubernetes API:Kubernetes API是Kubernetes集群的核心组件之一,它提供了与集群中的各个资源(如Pod、节点、服务等)进行交互的接口。通过Kubernetes API,您可以查询、创建、更新和删除集群中的资源,以及获取与集群相关的信息。 2. Kubernetes Exporter:Kubernetes Exporter是一个Prometheus的Exporter,用于从Kubernetes集群中收集指标数据,并将其转换为Prometheus可接受的格式。它通过访问Kubernetes API来获取有关集群中各种资源的指标数据,并将其公开为Prometheus指标端点。 在这种情况下,Kubernetes Exporter充当了一个桥梁,它使用Kubernetes API作为数据源,并将从API获取的指标数据暴露给Prometheus。 您可以通过在Prometheus配置文件中添加Kubernetes Exporter作为一个目标来配置Prometheus来收集和监控Kubernetes集群的指标数据。例如,在`prometheus.yml`文件中添加以下内容: ```yaml scrape_configs: - job_name: 'kubernetes' static_configs: - targets: ['kubernetes-exporter-url:port'] ``` 在上述示例中,您需要将`kubernetes-exporter-url:port`替换为实际运行Kubernetes Exporter的主机和端口。 这样,Prometheus将定期从Kubernetes Exporter收集指标数据,并进行监控和报警处理。 希望对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值