作者张珊,腾讯云容器前端开发工程师,日常负责腾讯云边缘容器 TKE@edge 相关控制台前端开发,同时也开发前端工程化相关工具。
问题背景
在边缘计算场景中,往往会出现一个集群管理多个边缘站点(包括一个或者多个计算节点)的情况。每个站点都可以为用户提供一套完整业务功能。由于受到网络限制,有业务联系的服务之间不希望或者不能跨站点访问。为了每个边缘节点都能提供一套完成功能,一个边缘站点都会去部署一组有业务逻辑联系的服务,如果使用原生 K8s 进行管理, 无法直接控制 Deployment 的 Pod 创建的具体节点位置,需要通过统筹规划节点的亲和性来间接完成;当边缘站点数量以及需要部署的服务数量过多时,管理和部署都将极为复杂,乃至仅存在理论上的可能性。
解决方案
腾讯云边缘容器服务 (Tencent Kubernetes Engine for Edge,简称 TKE@edge)是腾讯云容器服务推出的用于从中心云管理边缘云资源的容器系统,它开拓性地提出 ServiceGroup 的解决方案。ServiceGroup 可以便捷地在同集群的不同机房或区域各自部署一组服务,并且使得各个服务间的请求在本机房或本地域内部即可完成,避免服务跨地域访问。
要理解 ServiceGroup,可能需要先了解以下几个概念:
- NodeUnit: 位于同一个边缘站点的节点集合,其中节点有相同的某个 label,比如 zone:zone1,能够把服务之间的调用限制在同一个 Nod