全部产品

创建统一接入集群(新版)

更新时间:2020-11-27 15:16

说明:本文仅适用于公有云环境及新版专有云环境(在 AntStack 2.2 版本之后)。

统一接入集群承担统一接入和单元化网关的角色,在每个 k8s 集群内统一接入集群平行发布运维,多个平行的统一接入集群联合成一个联邦接入集群,是一个逻辑的集群实体。统一接入网关以集群的方式来承载业务负载均衡的流量,您需要根据流量的类型来规划集群,比如公网、内网等。

说明:集群上线后,您需要创建统一接入实例,并为应用服务创建负载均衡/统一接入类型的访问配置,才能进行各类业务流量的接入及路由,具体的转发及监听规则需在 应用服务访问配置 中设定。

组件作用

统一接入网关的作用主要是请求转发,即根据用户请求中的路由类型、域名和路径信息,识别出用户请求的目标应用并转发。

路由类型

路由类型主要分为 Gzone 路由(非单元化路由)和 Rzone 路由(单元化路由),详情如下

  • Gzone 路由:根据目标应用和目标单元类型,随机找出其路由的目标服务器组,如果存在多个目标服务器组,则按照目标服务器组的权重来进行流量分发。

  • Rzone 路由:当识别到用户请求最终目标为 Rzone 服务器时,通过用户请求的 Cookie 对锁进行解析,并计算出确定的 Rzone 路由目标。 解析步骤如下:

    1. 锁的 Key 为 uidop,通过 Key 计算出其 Value 值。
    2. 根据该 Value 值进行目标单元计算和转发。

路由示例

根据 uidop 对应 Value 值的范围,假设我们实现设置了如下路由规则:

  • [00,49], 路由到 rz00 单元。
  • [50,99], 路由到 rz01 单元。

则路由结果如下:

  • 当 uidop 的 Value 值不在 [00,99] 范围内:会将流量路由到当前 spanner 所在机房的目标应用对应的服务器组中,如果存在多个目标服务器组,则按照目标服务器的权重进行流量分发。
  • 当 uidop 的 Value 值位于 [00,49] 范围内:会将流量路由到目标应用的 rz00 单元所在目标服务器中,如果存在多个目标服务器组,则按照目标服务器的权重进行流量分发。
  • 当 uidop 的 Value 值位于 [50,99] 范围内:会将流量路由到目标应用的 rz01 单元所在目标服务器中,如果存在多个目标服务器组,则按照目标服务器的权重进行流量分发。

使用场景

主要使用场景如下:

  • 在异地多活、弹性流量和容灾切换场景下,需要对机房流量进行分配和再分配(划拨、切入和切出)。
  • 动态修改路由规则之后,接入路由组件会根据新的路由规则,将业务流量路由至新的目标机房,从而实现流量分配、弹性容量和容灾切换。
  • 部署方式:按机房部署,即各个机房各部署一套接入路由集群。

注意事项

  • 统一接入集群的容器只能调度到专有的统一接入类型的节点上,因此,创建统一接入集群时需要保证有足够的资源供调度。

  • 在创建集群后报资源不足调度失败错误时,您需要在集群管理页面进行节点扩容,并选择 统一接入节点 类型。详情请参考 扩容集群

  • 统一接入集群横跨各可用区,所以需要同时保证各可用区资源充足。

操作步骤

  1. 登录控制台。

  2. 在左侧导航栏中选择 网络 > 统一接入集群,进入网管集群列表页面。

  3. 单击 创建网关集群,填写以下配置信息:

    • 基本信息

      • 集群名称:只允许包含小写字母、数字、中划线、且必须以字母开头、以字母或数字结尾。长度为 1-29 个字符。
      • 网络类型:可指定的网络类型包括内网、公网。指定集群的网络类型后,该集群上仅能创建与之相同网络类型的统一接入实例。
      • 初始集群状态:可指定 在线维护
        • 在线:网关集群对外提供流量转发服务,同时可以接受转发规则的更新。
        • 维护:网关集群仅对外提供流量转发服务,但不接受转发规则的更新请求。
      • 容器规格:统一接入集群内单个节点的总资源等于控制平面固定资源和数据平面自定义资源之和。容器的规格和节点的数量决定了该集群的请求处理能力。具体数据请参考 压测结果

        • 控制平面固定资源:固定规格为 1C/1G/10G(CPU/内存/磁盘)。
        • 数据平面自定义资源:可自定义,推荐使用的最小规格为 4C/8G/40G,CPU:内存:磁盘容量的配比为 1:2:10。通常情况下,每 1C/2G/10G 的数据平面规格可以支持 3200 QPS 的 HTTP 短连接。
      • host 网络模式:网关集群所采用的网络模型。若选择是,Pod 会复用容器所在宿主机的 IP。若选择否,每个 Pod 会拥有独立 IP。高密度部署模式下仅可以选择非 host 模式。

    • 容器版本配置

      • 名称:网关容器的版本名称。长度为 1-5 个字符。只包含小写字母、数字、中划线,必须以字母开头,以字母或数字结尾。
      • 容器镜像:网关容器的镜像地址,输入 registry.cn-hangzhou.aliyuncs.com/sofastack/spannerplus:1.1.0
      • 副本数:网关节点的数量。出于容灾需要,建议一个集群至少包含 3 个以上节点。可以按照对容量的需求,合理规划容器规格与节点数量。
        说明:创建副本数为 0 的网关集群会导致集群不可用,需要重新扩容。
      • 标签:输入 key、value,为该版本的网关容器添加对应的 label。
  4. 单击 提交

压测概述

产品名称 部署拓扑/规格 性能指标概述
单元化应用服务 LHC 4C8G,4 个 统一网关集群节点可以支持的最大 QPS 数量。 HTTP 短连接:9000 QPS
HTTP 长连接:11000 QPS
HTTPS 短连接(不复用 session):1500 QPS
HTTPS 短连接(复用 session):4000 QPS
HTTPS 长连接:9000 QPS

压测环境


本次压测所使用的机器配置信息如下:

  • ECS 类型:ecs.sn2ne.2xlarge 系列,规格为 8 vCPU、32 GiB 内存。
  • 操作系统:CentOS Linux 7 (Core)
  • 内核版本:3.10.0-1062.18.1.el7.x86_64

压测方案

说明:本次 Spanner 跟应用混部,节点上没有特殊的网络配置。
  • 配置
    • upstream 关闭长连接。
    • 采用 rule-tt-vsg 精细化引流配置。
  • 压测 endpoint:直接压测 Spanner IP。
  • 压测工具:wrk
  • 后端服务:nginx
  • 返回 body 大小:本次压测没有考虑不同 body 大小的场景。
  • Spanner 配置:单 worker 节点配置为 4C8G,4 个 worker 节点。
  • HTTPS 请求协议为 TLSv1.2加密套件ECDHE-RSA-AES256-GCM-SHA384
  • 统计方式tail -f access.log | grep " 200 " | awk '{print $3}' | uniq -c

测试详情

HTTP 短连接

wrk -t4 -c 60 -d 200 -H 'Connection: Close' -H 'Host: XXX' ``http://IP:PORT

9000 QPS左右
image.png

HTTP 长连接

wrk -t4 -c 60 -d 200 -H 'Host: XXX' http://IP:PORT
11000 QPS 左右
image.png

HTTPS 短连接,不复用 session

wrk -t4 -c 60 -d 200 -H 'Host: XXX' -H 'Connection: Close' -m 0 https://IP:PORT
1500 QPS
image.png

HTTPS 短连接,复用 session

wrk -t4 -c 60 -d 200 -H 'Host: XXX' -H 'Connection: Close' https://IP:PORT
4000 QPS
image.png

HTTPS 长连接

9000 QPS 左右
image.png

压测结果

在上述压测环境下,不同容器规格的网关节点支持的 QPS 如下:

说明:不同 ECS 系列、CPU 规格、网卡型号、内核参数、及不同的请求都会影响网关节点的转发性能,具体以业务压测结果为准。

容器规格 HTTP 短连接 HTTP 长连接 HTTPS 短连接(不复用 session) HTTPS 短连接(复用 session) HTTPS 长连接
4C8G 9000 QPS 11000 QPS 1500 QPS 4000 QPS 9000 QPS