Kubernetes--服务拓扑(Service Topology)

本文介绍了Kubernetes服务拓扑的条件约束,说明了它与externalTrafficPolicy=Local的不兼容性。详细阐述了topologyKeys的支持值,包括hostname、zone和region,并指出其需遵循的有效标签格式和数量限制。通过四个示例,展示了如何配置服务拓扑以实现不同级别的路由策略,如按Node、Zone、Region优先级路由流量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、服务拓扑
    服务拓扑机制从Kubernetes1.17版本开始引入,目标是实现基于Node拓扑的流量路由,例如将发送到某个服务的流量优先路由到与客户端相同Node的Endpoint上,或者路由到与客户端相同的Zone的那些Node的Endpoint上。
    在默认情况下,发送到一个Service的流量会被均匀的转发到每个后端Endpoint上,但无法根据复杂的拓扑信息设置复杂的路由策略。服务拓扑机制的引入就是为了实现基于Node拓扑的服务器路由,允许Service创建者根据来源Node和目标Node的标签来定义流量路由策略
    通过对来源(Source) Node和目标(destination)Node标签的匹配,用户可以根据业务需求对Node进行分组,设置有意义的的指标值来标识“较近”或者“较远”的属性。例如:对于公有云环境,通常有区域(Zone或Region)的划分,云平台倾向于把服务的流量限制在同一个区域内,这通常是因为跨区域网络流量会收取额外的费用。另外一个例子,把流量路由到由DaemonSet管理的当前Node的Pod上。又如希望把流量保持在相同机架的Node上,已获得更
### Kubernetes 网络拓扑服务实现与配置 #### 节点间网络连接机制 Kubernetes 使用 CNI (Container Network Interface) 插件来管理容器间的联网方式。CNI 插件能够将抽象化的网络需求转化为实际的网络接口配置,使得 Pod 可以相互通信[^2]。 对于特定环境下的复杂网络需求,如跨可用区部署的应用程序,Kubernetes 提供了服务拓扑功能。此特性允许管理员基于地理位置或其他自定义标准指定流量路由路径。然而需要注意的是,当启用了外部流量策略 `externalTrafficPolicy=Local` 后,则不能再应用服务拓扑约束;反之亦然。这是因为两者之间存在冲突,无法在同一 Service 上共存[^3]。 #### 数据平面设计 MeshNet 是一种特殊的 CNI 解决方案,其核心技术架构由三部分组成: - **Datastore**: 利用 etcd 存储有关整个集群内所有 Pods 的实时状态信息; - **Meshnet**: 主要负责处理 Pod 加入或离开网络时所需的 IP 地址分配及其他必要的初始化工作; - **Meshnetd**: 运行于各节点上的守护进程,用于维护 VXLAN 或 gRPC 隧道的状态并响应来自其他节点的消息请求[^4]。 这些组件共同协作确保即使是在大规模分布式环境中也能保持高效稳定的互联性能。 #### 服务发现与负载均衡 为了使客户端应用程序能自动找到目标服务器实例的位置而不必关心底层物理位置的变化,在创建 Services 对象时可以通过设置 topologyKeys 参数来指示优先级较高的匹配规则。例如,“kubernetes.io/hostname”,这会引导入口网关尽可能把请求发送到同一主机内的后端副本上。同样地也可以选择更高层次的概念比如区域(zone)甚至更大范围的数据中心(region),以此提高局部性从而减少延迟并增强可靠性。 ```yaml apiVersion: v1 kind: Service metadata: name: example-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 sessionAffinity: ClientIP externalTrafficPolicy: Local # 不可与 service-topology 共同启用 topologyKeys: - "kubernetes.io/hostname" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值