详情页标题前

腾讯云容器服务ServiceGroup 多地域部署同尘科技

详情页1

功能特点

边缘计算场景中,往往会在同一个集群中管理多个边缘站点,每个边缘站点内有一个或多个计算节点。同时希望在每个站点中都运行一组有业务逻辑联系的服务,每个站点内的服务是一套完整的功能,可以为用户提供服务。由于受到网络限制,有业务联系的服务之间不希望或者不能跨站点访问。由于以上边缘计算的 3 个特点,腾讯云边缘容器专门设计了一套 ServiceGroup 的自定义资源逻辑,来解决边缘容器在多地域场景下遇到的应用分发和服务治理的问题。

操作场景

ServiceGroup 可以便捷地在共属同一个集群的不同机房或区域中各自部署一组服务,并且使得各个服务间的请求在本机房或本地域内部即可完成,避免服务跨地域访问。原生 Kubernetes 无法控制 Deployment 的 Pod 创建的具体节点位置,需要通过统筹规划节点的亲和性来间接完成。当边缘站点数量以及需要部署的服务数量过多时,管理和部署方面的极为复杂,甚至仅存在理论上的可能性。与此同时,为了将服务间的相互调用限制在一定范围,业务方需要为各个 Deployment 分别创建专属的 Service,管理方面的工作量巨大且极容易出错并引起线上业务异常。ServiceGroup 针对此场景设计,用户仅需使用 ServiceGroup 提供的 DeploymentGrid 和 ServiceGrid 两种 TKE Edge 自研 Kubernetes 资源,即可方便地将服务分别部署到这些节点组中,并进行服务流量管控,同时还可保证各区域服务数量及容灾。本文仅以一个实现案例,来说明 ServiceGroup 的使用方式,如果需要探究深入的细节,请参考文档 ServiceGroup 深入详解。

关键概念

整体架构



腾讯云容器服务ServiceGroup 多地域部署同尘科技



基本概念

ServiceGroup 需要和 NodeUnit 以及 NodeGroup 结合使用,概念详情如下:

NodeUnit(边缘节点池)

NodeUnit 通常是位于同一边缘站点内的一个或多个计算资源实例,需要保证同一 NodeUnit 中的节点内网是通的。ServiceGroup 组中的服务运行在一个 NodeUnit 之内。ServiceGroup 允许用户设置服务在一个 NodeUnit 中运行的 pod 数量。ServiceGroup 能够把服务之间的调用限制在本 NodeUnit 内。n更多内容可参考 边缘节点池。

NodeGroup(边缘节点池分类)

NodeGroup 包含一个或者多个 NodeUnit。保证在集合中每个 NodeUnit 上均部署 ServiceGroup 中的服务。集群中增加 NodeUnit 时自动将 ServiceGroup 中的服务部署到新增 NodeUnit。n更多内容可参考 节点池分类。

ServiceGroup

ServiceGroup 并不是一个实体的资源定义,是集中 Kubernetes 自定义资源的集合。ServiceGroup 是一种抽象资源,一个集群中可以创建多个 ServiceGroup。ServiceGroup 包含一个或者多个业务服务。适用场景如下:业务需要打包部署。业务需要在每一个 NodeUnit 中运行起来并且保证 pod 数量。业务需要将服务之间的调用控制在同一个 NodeUnit 中,不能将流量转发到其他 NodeUnit。ServiceGroup 涉及的资源类型包括如下三类:DeploymentGridStatefulSetGridServiceGridDeploymentGrid 的格式与 Deployment 类似, 字段就是原先 deployment 的 template 字段,比较特殊的是 gridUniqKey 字段,该字段指明了节点分组的 label 的 key 值:

apiVersion: superedge.io/v1kind: DeploymentGridmetadata:  name:  namespace:spec:  gridUniqKey:   

StatefulSetGrid 的格式与 StatefulSet 类似,字段就是原先 statefulset 的 template 字段,比较特殊的是 gridUniqKey 字段,该字段指明了节点分组的 label 的 key 值:

apiVersion: superedge.io/v1kind: StatefulSetGridmetadata:  name:  namespace:spec:  gridUniqKey:   

ServiceGrid 的格式与 Service 类似,字段就是原先 service 的 template 字段,比较特殊的是 gridUniqKey 字段,该字段指明了节点分组的 label 的 key 值:

apiVersion: superedge.io/v1kind: ServiceGridmetadata:  name:  namespace:spec:  gridUniqKey:   

操作步骤

以在边缘部署 Nginx 服务为例,我们希望在多个节点池内分别一套完整的 Nginx 服务,需要如下操作:

将边缘节点分组

我们以一个边缘集群为例,将集群中的节点添加到边缘节点池以及节点池分类中。此集群包含 5 个边缘节点,分别位于 beijingguangzhou 2 个地域,节点名为bj-1bj-2gz-1gz-2gz-3。如下图所示:n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

分别创建 2 个 NodeUnit(边缘节点池):beijingguangzhou,分别将相应的节点加入对应的 NodeUnit(边缘节点池)中,如下图所示:n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

创建名称为 location 的 NodeGroup(边缘节点池分类),将beijingguangzhou 这两个边缘节点池划分到location这个分类中,如下图所示:n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

进行上述操作后,每个节点上会被打上相应的标签,节点 gz-2 的标签如下图所示:n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

说明label 的 key 就是 NodeGroup 的名字,value 是 NodeUnit 的名字,value 相同的节点表示属于同一个 NodeUnit。如果同一个集群中有多个 NodeGroup 请创建不同的 NodeGroup 名字作为唯一标记,部署 ServiceGroup 相关资源的时候会通过 NodeGroup 的名字这个唯一标记来绑定指定的 NodeGroup 进行部署。

无状态 ServiceGroup

部署 DeploymentGrid

1. 选择 ServiceGroup > DeploymentGrid,进入列表页。n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

2. 单击新建,创建名称为Nginx的 DeploymentGrid。n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

NodeGroup: 这里选择需要批量部署 Nginx 服务的 NodeGroup 分组;这里选择 location,意味着将会在beijingguangzhou两个 NodeUnit 下分别部署相应的 Deployment。其余参数:其余参数和 TKE 部署应用的方式完全一致,这里不再详述;这里作为示例,实例数量设置为了3。3. 单击创建 DeploymentGrid,等待部署完成。如下图所示:

腾讯云容器服务ServiceGroup 多地域部署同尘科技


4. 单击nginx链接,进入详情页,可以查看具体创建的Deployment 详情。如下图所示:

腾讯云容器服务ServiceGroup 多地域部署同尘科技


说明平台在 NodeGroup 包含的每个 NodeUnit 下都分别创建了一个 Kubernetes 标准的 Deployment,名字为DeploymentGrid-NodeUnit。n根据示例,此处示例名分别为nginx-beijingnginx-guangzhou

部署 ServiceGrid

1. 选择 ServiceGroup > ServiceGrid,单击新建,如下图所示:n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

NodeGroup:选择需要的 NodeGroup,和上面的 DeploymentGrid 选择一样的 NodeGroup。设置访问:标准 Kubernetes 的 Sevice 配置信息,选择需要的端口,这里 nginx 服务默认是 80。Workload 绑定:选择 Service 通过 Seletor 选择需要的 Pod,可以手动输入添加;也可以选择引用 Workload添加已部署的 DeploymentGrid > nginx。2. 单击创建 ServiceGrid,创建成功,显示事件详情页。3.服务 > Service中查看具体创建出来的Service信息,如下图所示:n

腾讯云容器服务ServiceGroup 多地域部署同尘科技

4. 通过使用nginx-svc这个 Service,能够实现下面的目的:从beijing地域的 Pod 中访问此 svc,后端只会访问到beijing地域的 3 个 pod 中。从guangzhou地域的 Pod 中访问此 svc,后端只会访问到guangzhou地域的 3 个 pod 中。n每个地域访问这个Service 都会被限制在本 NodeUnit 范围内说明此文档仅简单描述 ServiceGroup 的使用方式,如果想要了解详情,请参考文档 ServiceGroup 深入详解。

容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/147984.html

(0)
上一篇 2023年12月9日 下午12:48
下一篇 2023年12月9日 下午12:48
详情页2

相关推荐

  • 腾讯云对象存储删除目录

    注意您目前查阅的是历史版本 API 文档,已不再更新和维护,我们建议您查阅新版 API 文档。 描述 使用 API 删除指定目录。前置条件:必须已清空该目录下的所有文件或文件夹。限制条件:目标目录不可填写/,无法删除根目录,即无法删除 Bucket。 请求 请求语法 POST /files/v2/<appid>/<bucket_name&g…

    腾讯云 2023年12月9日
  • 腾讯云对象存储COS V4 SDK 产品个人信息保护规则

    引言 QCloudCOSV4(iOS)及 cos-android-sdk(V4)(android)(以下统称 “SDK 产品”)由腾讯云计算(北京)有限责任公司(以下简称“我们”)开发,公司注册地为北京市海淀区知春路49号3层西部309。《COS V4 SDK 产品个人信息保护规则》(以下简称“本规则”)主要向开发者及其终端用户(“终端用户”)说明,为了实现…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云直播播放配置

    域名推流成功后,您可进入云直播控制台,使用播放地址生成器录入与推流地址 StreamName 相同的 StreamName,生成对应流的播放地址,即可通过该播放地址查看直播画面。 前提条件 已登录 云直播控制台。已添加播放域名 ,详情请参见 添加自有域名。 操作步骤 1. 选择域名管理,单击需配置的播放域名或管理进入域名管理。2. 选择播放配置 > 播…

    2023年12月9日
  • 腾讯云对象存储生命周期

    简介 本文档提供关于生命周期的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 PUT Bucket lifecycle 设置生命周期 设置存储桶的生命周期管理的配置 GET Bucket lifecycle 查询生命周期 查询存储桶生命周期管理的配置 DELETE Bucket lifecycle 删除生命周期 删除存储桶生命周期管理的配置…

    腾讯云 2023年12月9日
  • 腾讯云内容分发网络CDN服务等级协议

    详细信息,请参见 内容分发网络服务等级协议。 内容分发网络CDN官网1折活动,限时活动,即将结束,速速收藏同尘科技为腾讯云授权服务中心。购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。