全部产品
云市场

步骤二:初始化环境

更新时间:2020-04-01 19:17:04

本文介绍如何根据架构规划初始化单元化环境,为后续的应用发布做准备。

步骤一:创建工作空间

  1. 登录 LHC 控制台。
  2. 在左侧导航栏,单击下方的全局设置,进入工作空间列表页面。
  3. 单击添加工作空间,输入以下工作空间基本信息。
    • 工作空间标识:工作空间的英文标识,全局唯一,一经确定无法修改,例如:dev、test、prod 等。本例中分别输入:DemoIDC1DemoIDC2
    • 工作空间名称:工作空间的显示名称,例如:开发工作空间、测试工作空间、生产工作空间。本例中分别输入:DemoIDC1DemoIDC2
    • 地域:选择工作空间所在的地域(Region)。
    • 网络类型:选择专有网络 VPC。
    • 可用区:工作空间配置的可用区(Available Zone),最多不能超过两个。本例中为每个工作空间分别配置一个可用区,为支持双机房高可用等架构做准备。
  4. 点击 下一步,在 创建 VPC 页面,输入以下配置信息:

    • 专有网络名称:由 [2, 128] 个英文或中文字符组成,必须以大小字母或中文开头,可包含数字、下划线(_) 或连字符(-),不能以 http://https:// 开头。推荐与工作空间名称相同。本例中分别输入:DemoIDC1、DemoIDC2。
    • 专有网络网段:专有网络的网段,一旦选择便无法更改,专有网络内的所有资源,如 ECS、RDS、SLB 的私网 IP 都在该网段内。可选网段如下:

      • 10.0.0.0/9
      • 172.16.0.0/12
      • 192.168.0.0/16
    • 交换机:点击 添加交换机,在弹出的 创建交换机 窗口,填写以下信息,点击 确定

      • 名称:交换机名称。长度为 2-128 个字符,以英文字母或中文开头,可包含数字、下划线(_)和短横线(-)。
      • 可用区:交换机的可用区。同一 VPC 内不同可用区的交换机内网互通。您需要为每个可用区创建一台交换机。
      • 自定义网段:默认关闭。开启后,需填写网段地址。交换机的网段可以和其所属的 VPC 网段相同或者是其 VPC 网段的子网。
      • 子网掩码:自定义网段 关闭时,需分别选择子网掩码和网段地址。默认专有的网段掩码是 16 位,例如 172.31.0.0/16,最多可提供 65536 个私网 IP 地址。范围为 16~29 位之间,可提供 4~65532 个地址。
      • 描述: 输入交换机的描述信息。可包含 2-256 个中英文字符,不能以 http://https:// 开头。
  5. 点击 下一步,在 创建 VPC 安全组 页面,点击 添加安全组,在弹出的 创建安全组 窗口,填写以下信息,点击 提交
    • 安全组名称:长度为 2-128个英文或中文字符,必须以大小字母或中文开头,不能以 http://https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。
    • 描述:可包含 2-256 个中英文字符,不能以 http://https:// 开头。
    • 规则:保持默认设置。

步骤二:创建工作空间组

您可以通过创建工作空间组对用户资源进行隔离,不同工作空间组下的集群彼此隔离。一个租户下可以创建多个工作空间组,一个工作空间组可以关联多个工作空间。工作空间组可以跨地域,从而实现应用的跨地域部署。

操作步骤

  1. 登录 LHC 控制台,在左侧导航栏点击左下角的 全局设置,进入工作空间列表页面。
  2. 在左侧导航栏,选择 工作空间组,进入工作空间组列表页面。
  3. 点击 创建工作空间组,填写以下信息后,点击 提交
    • 工作空间组名称:控制台上的展示名称。填写 DemoWSG
    • 工作空间组标识:租户下唯一标识。填写 DemoWSG
    • 工作空间:选择要关联的工作空间,选择关联 2 个工作空间 DemoIDC1DemoIDC2
    • 发布模式:选择 多集群

步骤三:创建逻辑单元

使用 LHC 部署应用服务前,您需要先定义系统的逻辑单元。逻辑单元是单元化架构的基础,一个单元被称为一个 Zone。根据业务特点不同,您可以将系统部署在不同类型的逻辑单元中。

创建全局域(GZone)

  1. 登录 LHC 控制台,在左侧导航栏点击 基础元数据 > 逻辑单元
  2. 在逻辑单元列表页面,点击 创建逻辑单元
  3. 在弹出框中填写以下信息后,点击 确定
    • 逻辑单元名称:建议按照命名规范为 逻辑单元类型简称+数字 的形式,如 GZ00。本例中分别输入:GZ01GZ02
    • 类型:选择全局域(GZone)。

创建本地域(RZone)

  1. 登录 LHC 控制台,在左侧导航栏点击 基础元数据 > 逻辑单元
  2. 在逻辑单元列表页面,点击 创建逻辑单元
  3. 在弹出框中填写以下信息后,点击 确定
    • 逻辑单元名称:建议按照命名规范为 逻辑单元类型简称+数字 的形式,如 GZ00。本例中分别输入:RZ01RZ02
    • 类型:选择本地域(RZone)。
    • 所属 IDC:选择逻辑单元所属的机房。本例中为 RZ01 选择 DemoIDC1,RZ02 选择 DemoIDC2

步骤四:创建部署单元

部署单元 cell 是实现单元化的基础。双机房双活场景下,一个应用的应用服务可以跨部署单元 cell 部署。本例中,您将为每个逻辑单元创建一个部署单元。

操作步骤

  1. 登录 LHC 控制台,在左侧导航栏点击 基础元数据 > 部署单元
  2. 在部署单元列表页面,点击 创建部署单元
  3. 在弹出框中填写以下信息后,点击 确定
    • 名称:建议使用逻辑单元+字母方式命名,本例中分别输入 RZ01ARZ02A
    • 类型:选择部署单元所属的类型。本例中选择 本地域(RZone)
  4. 填写以下信息:
    • 所属逻辑单元:选择相关联的逻辑单元。本例中分别为 RZ01A 和 RZ02A 关联 RZ01 和 RZ02。
    • 默认权重(%):设置部署单元所承载的业务流量权重。本例中为 RZ01A 和 RZ02A 均保持默认 50%。
  5. 点击 提交

步骤五:创建集群

集群是运行工作负载的逻辑分组,包含一组云服务器资源,每台云服务器即集群中的一个节点。首次使用 LHC 时,您需要创建一个初始集群,并添加至少一个节点。

说明:集群创建一般需要 20 分钟左右,创建时间与包含的可用区及节点数目有关。

本例中,您将为两个工作空间分别创建一个集群:democluster1democluster2,实现同城双活的架构。

操作步骤

  1. 登录 LHC 控制台,在左侧导航栏点击 集群管理 > 集群
  2. 集群列表 页,点击 创建集群
  3. 填写基本信息 页面,填写以下配置信息。
    • 可用区:选择集群所属的可用区。
    • 集群名称:集群显示名称,不能为空。本例中分别输入:democluster1democluster2
    • 网络类型:展示当前可用区的网络类型,默认虚拟私有网络(VPC)。
    • 配置交换机:选择当前可用区下的交换机来分配私网 IP。
    • 安全组名称:选择当前可用区下的安全组。
  4. 点击 下一步 进入 网络配置,填写以下配置信息。
    • 容器网络:系统将为集群内容器分配此 CIDR 内的 IP 地址,不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复,创建成功后不能修改。创建集群前,您需提前规划好网段。
    • 节点 Pod 数量上限:每个节点上最多承载的 Pod 数量。
    • 可用区节点上限:根据 节点 Pod 数量上限 计算得出。
    • 网络插件:默认为 VPC Router。
    • Service 网段:系统将为集群内 Service 分配此 CIDR 内的 IP 地址,不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复,创建成功后不能修改。
  5. 点击 下一步 进入 节点配置,填写以下配置信息。
    1. 点击 创建节点,填写以下信息后,点击提交。
      • 部署单元:选择可用区下的部署单元。所选中的部署单元将会打标到创建出来的节点上,用于容器服务发布时 Pod 的分组和调度策略。
      • 系列/规格/系统盘:设置节点所对应的 ECS 的系列、规格和系统盘信息。
      • 挂载数据盘:支持 SSD 云盘、高效云盘和普通云盘。
      • 用作 spanner 集群节点:不勾选。
      • 实例数量:设置需要创建的节点数量。
      • 实例名称前缀:设置节点名称前缀,最终生成的名称会自动添加序号,生成唯一名字。实例名称允许包含(小写)字母、数字、连字符、且必须以字母开头、以字母或者数字结尾,2 ~ 80 个字符。
    2. 设置 Root 密码:设置登录节点的密码,如遗忘可登录 ECS 控制台重置密码。
  6. 点击 下一步 进入预览 页面,确认集群配置信息无误后,点击 创建

    说明:系统会自动跳转到 创建集群详情 页面。在集群的创建过程中,若出现任务失败的情况,可点击事件查看具体错误详情,或点击 重试忽略

步骤六:创建网关集群

统一接入网关用于承载业务负载均衡的流量,并以集群的方式来承载,您需要根据流量的类型来规划集群,比如公网、内网、办公网等。

说明:创建好统一接入网关集群后,目前还需要在应用服务里创建出负载均衡类型的Service,才能进行各类业务流量的接入。

  1. 登录 LHC 控制台,在左侧导航栏点击 流量管理 > 应用层
  2. 集群列表 页,点击 创建 Spanner 集群
  3. 创建 Spanner 集群 页面,填写以下配置信息。

    • 集群网络类型:集群网络类型为非必选项,目前可指定的网络类型包括内网、外网、办公网、跨域网络。若您未指定集群网络类型,则该集群上可以创建任意网络类型的负载均衡实例。一旦您指定了集群的网络类型后,该集群上仅能创建与之相同网络类型的 ALB 实例。
    • 是否独占 CPU:负载均衡实例是否独占CPU资源,默认为独占 CPU。该信息要结合负载均衡容器所在物理机节点上是否开启了共享 CPU 模式。
    • 节点类型:负载均衡实例所部署到的物理机标签,该值必须指定,指定以后,负载均衡实例就会落到在标签 com.alipay.acs.engine.device_type 等于该值的物理机上。
    • 容器网络类型:K8S 集群所采用的网络模型。目前支持的类型为 vlan、vrouter、host。
    • 节点规格:容器的规格和节点的数量决定了该集群的请求处理能力,目前提供了 3 种容器规格做参考,其单个节点的处理能力如下表。

      说明:出于容灾需要,建议一个集群至少包含 3 个以上节点。可以按照对容量的需求,合理规划容器规格与节点数量。

规格 HTTP 处理能力 HTTPS 处理能力 在线链接数
4C8G 6500 QPS 600 QPS(纯新建) 8w
4C16G 6500 QPS 600 QPS(纯新建) 16w
16C80G 50000 QPS 2400 QPS(纯新建) 80w

步骤七:单元路由规则初始化

  1. 登录 LHC 控制台,在左侧导航栏点击 流量管理 > 应用层

    正式流量 页签中,系统会先展示最近一次推送成功的全局流量规则,即当前生效的全局流量快照。

  2. 点击 规则配置 进入 正式流量规则配置 页面,该页面展示的是当前已配置的规则(只是配置,不代表已生效)。

  3. 点击逻辑单元卡片或分片数据即可进入编辑页面,填写以下配置信息:

    对于 RZone 类型的部署单元,配置对应部署单元的 UID 分片配置如下。

    • RZ01A : 00-49
    • RZ02A : 50-99

      说明:请确保调整后的各个部署单元的流量比总和为 100%。UID 分片的取值范围为 00~ 99。

步骤八:中间件初始化

消息队列初始化

创建 Topic

  1. 登录消息队列控制台,左侧导航栏选择 Topic 管理,进入 Topic 列表页面。
  2. 点击列表左上方的 创建 Topic 按钮,在新弹出的对话框中,输入或选择 Topic 信息:
    • Topic:Topic 名称,命名不能以 “CID” 和 “GID”开头,只能包含英文、数字、连字符(-)和下划线(_),且长度需控制在 3-64 个字符之间,例如 TP_SCRCU_POC
    • 消息类型:选择事务消息。
    • 描述:可选,对该 Topic 的备注内容。
  3. 点击 确定

创建 GroupID

  1. 登录消息队列控制台,左侧导航栏选择 Group 管理,进入 Group ID 列表页面。
  2. 点击列表左上方的 创建 Group ID 按钮,在新弹出的对话框中,输入或选择 Group ID 信息:
    • Group ID:必填,以 “GID” 或者 “GID-” 开头,只能包含字母、数字、连字符(-)和下划线(),且长度限制在 7-64 字符之间,例如 GID_SGROUP
    • 描述:可选,对该 Group ID 的备注信息。
  3. 点击 确定

创建消息路由任务

  1. 登录消息队列控制台,在左侧导航栏中选择 消息路由
  2. 在消息路由任务列表的左上方,点击 创建路由任务
  3. 创建路由任务 窗口中,配置以下任务信息:
    • 源 Topic:输入需要同步的消息所属 Topic 名称,如 TP_SCRCU_POC
    • 目标单元:选择消息将被同步到的 Topic 所属单元,如 RZONE
    • 目标 Topic:输入消息将被同步到的 Topic 名称,如 TP_SCRCU_POC
    • 起始同步位点:选择从源 Topic 中的消息队列的哪个位置开始进行消息同步,即从这个位置之后进入队列的消息都会被同步到目标 Topic。根据实际需要选择即可。
      • 最小位点:即任务首次启动之后,从有效期内最早写入源 Topic 队列的消息开始同步,首次任务启动之前发的消息不会被同步。
      • 最大位点:即任务首次启动之后,从最新写入源 Topic 队列的消息开始同步,首次任务启动之前发的消息不会被同步。
      • 自定义位点:选择从源 Topic 中的消息队列的哪个位置开始进行消息同步,首次任务启动之前发的消息不会被同步。
    • 描述:选填,输入对该同步任务的具体描述或备注。
  4. 点击 确定

数据访问代理初始化

创建数据访问代理实例

  1. 登录数据访问代理控制台,选择左侧导航栏中的 实例
  2. 在实例管理页面,点击左上角的 创建实例 按钮。
  3. 创建实例 窗口中,选择目标机房的 云游环境/云游 cell
  4. 是否创建双机房 栏,选择 ,再选择第二个目标机房的 云游环境/云游 cell
  5. 点击 确定

添加物理数据节点

  1. 前往 OceanBase 控制台购买相应的数据库资源。单元化部署架构下,OceanBase 会提供三个访问地址:
    • 其中两个为只能访问当前机房数据库节点的地址,即 local url。
    • 另外一个是可以跨机房访问所有数据库节点的地址,即 global url。
  2. 登录数据访问代理控制台,左侧导航栏中选择 运维 > 物理数据节点
  3. 点击 添加节点,输入 global url 节点信息:
    • 物理节点 ID:必填,待添加的 OceanBase 节点的实例 ID。
    • 链接地址:必填,输入待添加的 OceanBase 节点的实例链接地址,即 global url。
    • 数据库类型:必填,选择 OceanBase。
    • 描述:对于这个物理数据节点的描述信息。
  4. 点击 下一步,继续添加两个 local url 的地址,即两个机房各自的 local url。
  5. 点击 确定

创建数据库

  1. 在数据访问代理控制台左侧导航栏,选择 数据库,进入数据库列表后,点击 创建数据库
  2. 在弹出的 创建数据库 窗口中,选择指定的数据访问代理实例来创建数据库,点击 创建 进入 选择数据节点 页面。
  3. 选择之前添加的 OceanBase 数据存储节点,点击 下一步
  4. 根据提示,填写或选择以下数据库信息。
    • 创建类型:选择 分库分表,并设置对应的分库数。
    • 数据库名:由小写字母、数字、下划线组成,以字母开头,不超过 24 个字符。
    • 物理分库数:物理分库用于均匀承载分片,默认物理分库数等于分片数,如果修改则需保证分片数是物理分库数的整数倍,同时物理分库数也是物理节点的整数倍。本例中,将物理分库数设为 3.
    • 高级设置 > 分片数:在分库分表模式下,需要指定分片数。为保证数据库后期的水平扩容,分片数需要能够平均分配在上一步选择的所有物理数据节点上。所以分片数必须为数据节点的倍数。
    • 数据库密码:8-30 个字符,大、小写字母、数字、下划线四者中至少包含三种以上。
  5. 建库预览 页面,确认各项信息正确。
  6. 物理数据节点信息 中,根据数据库的单元化规划,填写各物理分库对应的用户与密码。
  7. 信息确认完毕,点击 完成 开始创建数据库。
  8. 数据库创建完成后,页面会自动进入新创建数据库的详情页面,点击 上线 启用当前数据库。

创建数据访问代理数据表

  1. 在数据访问代理控制台左侧菜单栏选择 数据库,进入数据库列表。
  2. 在列表中,点击刚刚创建的数据库进入其详情页,点击右侧页面下方的 新增数据表
  3. 进入创建数据表向导,填写或选择各项信息,并点击 下一步
    • 表属性:支持单表、拆分表。本例中选择 拆分表
    • 分表总数:所指定的分表数会被均分在当前数据库的各个物理库中。
    • 分表规则:
      • 在拆分表(分表)模式下数据访问代理提供上层应用透明的数据表访问模式,所以这里需要设置分表路由规则,数据访问代理会对应用的 SQL 进行自动路由。
      • Hash 取模:数据访问代理会以指定的路由字段与数据库数量进行取模散列。
      • 字符串截取:数据访问代理会以指定的路由字段中指定范围的字符串来进行散列。
      • 自身位:指定路由字段数值来进行直接路由。
      • 自定义:如果上述路由操作无法满足需求,用户也可以直接定义数据路由表达式,数据访问代理会根据指定的路由字段以及自定义表达式来进行路由。
    • 现在创建物理表:选中时点击下一步会根据设置的分表数进行物理表的创建。在没有选中的情况下点击下一步会完成数据表(逻辑表)的创建,但是此时还没有物理表,需要手动进行关联。
    • 高级设置:可以进行分库规则的自定义设置,规则同分表规则。
  4. 执行 DDL 语句创建数据表(如果上一步选择了 现在创建物理表)。这里可以通过直接输入 DDL 语句来进行表 DDL 操作,点击 执行 触发。
  5. 返回该数据库的详情页,在下方的 数据表信息 标签页中可以看到新创建的数据表。
  6. 点击页面右上方的 配置生效 > 确定,生效当前的数据表变更。

连接数据访问代理

  1. 在数据库列表页,找到刚刚创建的数据库,点击名称进入数据库详情页面。
  2. 访问信息 下方,您可以获取 MySQL 客户端命令行,即为该数据库的连接信息。
  3. 获取到连接信息后,可通过 第三方工具 或者 程序代码 两种方式进行连接。
    • 第三方工具
      数据访问代理遵循 MySQL 标准交互协议,所以支持第三方工具的连接和使用。

      说明:数据访问代理完全兼容 MySQL 官方命令行客户端(版本 5.1+)。数据访问代理不支持 MySQL 的历史版本(如 3.x、4.x 等版本)的指令和不常用指令,因此数据访问代理只承诺第三方 GUI 客户端可执行基础的数据库操作,包括数据的增删改查和 DDL 操作。

    • 程序代码
      主要通过 MySQL 官方驱动或者第三方符合 MySQL 官方交互协议的程序进行连接。
      • 数据访问代理支持的客户端工具:MySQL 命令行(推荐)、MySQL Workbench(推荐)、SQLyog、Sequel Pro、Navicat for MySQL。
      • 数据访问代理支持的程序驱动:
        • JDBC Driver for MySQL (Connector/J)
          1. //JDBC
          2. Class.forName("com.mysql.jdbc.Driver");
          3. Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:1234/sample_schema","sample_user","sample_password");
          4. //...
          5. conn.close();
        • Python Driver for MySQL (Connector/Python)
        • C++ Driver for MySQL (Connector/C++)
        • C Driver for MySQL (Connector/C)
        • ADO.NET Driver for MySQL (Connector/NET)
        • ODBC Driver for MySQL (Connector/ODBC)
        • PHP Drivers for MySQL (mysqli, ext/mysqli, PDO_MYSQL, PHP_MYSQLND)
        • Perl Driver for MySQL (DBD::mysql)
        • Ruby Driver for MySQL (ruby-mysql)