全部产品

快速入门

更新时间:2020-09-18 14:35:46

本文以一个同城双活架构下的双集群发布模式为例,引导您快速熟悉 LHC 的操作链路。LHC 也支持在单元化架构下发布应用,具体内容参见 单元化入门指南

说明:双机房场景下,推荐工作空间与机房是一对一的关系。

背景信息

部署架构如下图:在 SOFAStack 租户下,在同一地域内,创建一个工作空间组,关联两个工作空间,分别对应两个不同的可用区(机房),每个机房对应一个部署单元(cell)。

架构

步骤一:准备环境

创建工作空间

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

    • 专有网络名称:由 [2, 128] 个英文或中文字符组成,必须以大小字母或中文开头,可包含数字、下划线(_) 或连字符(-),不能以 http://https:// 开头。推荐与工作空间名称相同。本例中分别输入:DemoIDC1DemoIDC2
    • 专有网络网段:专有网络的网段,一旦选择便无法更改,专有网络内的所有资源,如 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. 登录控制台,在左侧导航栏点击左下角的 全局设置,进入工作空间列表页面。
  2. 在左侧导航栏,点击 工作空间组,进入工作空间组列表页面。
  3. 点击 创建工作空间组,填写以下信息后,点击 提交
    • 工作空间组名称:控制台上的展示名称。填写 DemoWSG
    • 工作空间组标识:租户下唯一标识。填写 DemoWSG
    • 工作空间:选择要关联的工作空间,选择关联2个工作空间 DemoIDC1DemoIDC2
    • 发布模式:选择 多集群

步骤二:创建集群

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

说明:集群创建一般需要 20 分钟左右,创建时间与包含的可用区、节点数目、网络环境、节点启动的速度有关。

集群的创建过程包括以下四个阶段:

  1. 部署集群必备组件:主要是 k8s 的控制平面组件
  2. 初始化集群元数据
  3. 扩容节点:创建 ECS
  4. 节点装机:安装 kubernetes 组件

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

前提条件

已准备环境。

操作步骤

  1. 登录控制台,在左侧导航栏点击 集群管理 > 集群
  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. 点击 下一步 进入 预览 页面,确认集群配置信息无误后,点击 创建

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

步骤二:创建转账应用

应用管理 控制台创建名为 transfer money 的应用。

操作步骤

  1. 登录应用管理控制台,在左侧导航栏点击 应用列表

  2. 应用列表 页面,点击 创建应用

  3. 在创建应用页面输入以下信息,点击 确定

    • 应用名称: 输入 transfer money

      重要:应用名称在同一租户内必须是唯一的。

    • 技术栈:选择 SOFABoot,版本使用 2.0。

    • 关闭 设置代码库(默认已打开)
    • 关闭 设置其他信息 (默认已打开)。
    • 其他为默认配置。

新创建的应用出现在应用列表的最上方。应用状态为 创建中,数秒后变为 创建完成,此时已完成应用创建。

步骤三:准备镜像

LHC 以镜像的方式部署应用服务,创建应用服务前需先准备好镜像。为方便您测试,LHC 提供以下可以公开访问的示例镜像:

镜像名称 镜像地址
aks-transfermoney-server registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/aks-transfermoney-server:20190726095608708-master.40215e87
aks-transfermoney-client registry-vpc.cn-shanghai.aliyuncs.com/sofa-samples/aks-transfermoney-client:20190815134744553-master.5ea6278b

步骤四:创建应用服务

创建 2 个有依赖关系的应用服务:aks-transfermoney-server、aks-transfermoney-client。

前提条件

已创建联邦命名空间,例如 antcloud-demo。具体步骤参见 创建联邦命名空间

创建转账服务端的应用服务

  1. 登录控制台,在左侧导航栏点击 发布运维 > 应用服务

  2. 在应用服务列表页,点击 创建应用服务

  3. 创建应用服务 页面,填写以下基本信息,点击 下一步

    • 命名空间:选择一个集群中的命名空间(namespace),默认为列表第一个。
    • 应用服务名称:容器服务的名称,输入 aks-transfermoney-server。服务实例名称允许包含(小写)字母、数字、连字符,且必须以字母开头,以字母或数字结尾。同一个命名空间下不允许同名。
    • 所属应用:选择 transfer money
    • 负责人:选择该应用服务的负责人。
    • 描述:选填。容器服务的描述。
  4. Pod 模板配置 页面,填写以下信息,点击 下一步

    • 容器名称:输入名称。
    • 访问类型:选择 镜像仓库,使用示例镜像 aks-transfermoney-server,镜像地址参考 准备镜像
    • CPU 配置请求核数 为 200 millicores,最大核数 为 500 core。
    • 内存配置请求内存 为 512 MiB,最大内存 为 1 GiB。
    • 高级配置 > 环境变量配置 中,配置 APPSVC_VERSION = V1ANTCLOUD_SOFA_PROFILE = prod
    • 高级配置 > 健康检查配置 中,配置 Readiness Probe 检查方法为 Http GET 方法 、访问路径为 /health/readiness、访问端口 8080。其余项按照输入框提示配置。
    • 高级配置 > 日志服务配置中,配置:选择已有或新建日志库,日志路径 /home/admin/release/run/logs/aks-transfermoney-server/digest/*.log
    • 高级配置 > 业务实时监控 中,配置监控目录: /home/admin/release/run/logs/home/admin/release/run/logs/aks-transfermoney-client/digest/transfermoney.log
  5. 弹性配置 页面,填写以下信息,点击 下一步

    副本伸缩策略配置:目前仅支持 固定副本数,默认为 0,勾选部署单元(RZ01ARZ02A)并修改为期望副本数 1,即应用服务运行时保持固定数目的 Pod 副本。

  6. 访问配置 页面,填写以下信息,点击 下一步

    1. 访问配置 页面,点击 添加服务
    2. 添加服务 窗口,填写以下信息后,点击 确定

      • 服务名称:输入 aks-transfermoney-server

        说明:需记录下这个 Service Name,需要以环境变量形式配置到客户端应用。

      • 访问方式:选择 VPC 内网访问

        说明:选择 VPC 内网访问 会建一个内网的 LoadBalancer ,并将流量转发到容器的相应端口上。您可以在创建应用服务时设置访问方式,也可以应用服务创建完成后添加访问方式。

      • 端口映射:点击 添加端口映射,填写以下信息。其余保持默认设置。

      • 协议:选择 TCP。目前支持 TCP 与 UDP。
      • 访问端口:容器镜像中工作负载程序实际监听的端口,输入 80
      • 容器端口:容器端口映射到集群虚拟 IP 上的端口,输入 8341
  7. 部署和调度配置 页面,为应用服务保持系统默认配置,点击 下一步

  8. 在应用服务 预览 页面,确认信息无误,点击 提交

    说明:该应用服务配置编辑完成提交后,进行版本备注,方便区分版本。

创建转账客户端的应用服务

  1. 登录控制台,在左侧导航栏点击 发布运维 > 应用服务

  2. 在应用服务列表页,点击 创建应用服务

  3. 创建应用服务 页面,填写以下基本信息,点击 下一步

    • 命名空间:选择一个集群中的命名空间(namespace),默认为列表第一个。
    • 应用服务名称:容器服务的名称,输入 aks-transfermoney-client。服务实例名称允许包含(小写)字母、数字、连字符,且必须以字母开头,以字母或数字结尾。同一个命名空间下不允许同名。
    • 所属应用:选择 transfer money
    • 负责人:选择该应用服务的负责人。
    • 描述:选填。容器服务的描述。
  4. Pod 模板配置 页面,填写以下信息,点击 下一步

    • 容器名称:输入名称。
    • 访问类型:选择 镜像仓库,使用示例镜像 aks-transfermoney-client,镜像地址参考 准备镜像
    • CPU 配置请求核数 为 200 millicores,最大核数 为 500 core。
    • 内存配置请求内存 为 512 MiB,最大内存 为 1 GiB。
    • 高级配置 > 环境变量配置 中,配置变量名称为 SERVER_TM_ADDRESS,值为 Server 端 Service Name。
    • 高级配置 > 业务实时监控 中,配置监控目录:/home/admin/release/run/logs
  5. 弹性配置 页面,填写以下信息,点击 下一步

    副本伸缩策略配置:目前仅支持固定副本数,默认为 0,勾选部署单元(RZ01ARZ02A)并修改为期望副本数 1,即应用服务运行时保持固定数目的 Pod 副本。每个 client 能够压测并发上限为 1000。

  6. 访问配置 页面,填写以下信息,点击 下一步

    1. 访问配置 页面,点击 添加服务
    2. 添加服务 窗口,填写以下信息后,点击 确定

      • 服务名称:输入 aks-transfermoney-client
      • 访问方式:选择 公网访问

        说明:配置外部 Service 会创建一个公网的 LoadBalancer,并将流量转发到容器的相应端口上。访问方式由公网负载均衡服务地址以及设置的访问端口组成,例如 10.117.117.117:80

      • 端口映射:点击 添加端口映射,填写以下信息。其余保持默认设置。

        • 协议:选择 TCP。目前支持 TCP 与 UDP。
        • 访问端口:容器镜像中工作负载程序实际监听的端口,输入 80
        • 容器端口:容器端口映射到集群虚拟 IP 上的端口,输入 8341
  7. 部署和调度配置 页面,为应用服务保持系统默认配置,点击 下一步

  8. 在应用服务 预览 页面,确认信息无误,点击 提交

    说明:该应用服务配置编辑完成提交后,进行版本备注,方便区分版本。

步骤五:创建发布单

通过发布单同时发布上一步中创建的两个有依赖关系的应用服务。

说明:选取两个应用服务并进行串行发布。

操作步骤

  1. 登录控制台,在左侧导航栏点击 发布运维 > 发布单 进入发布部署大盘。

  2. 在发布部署大盘,点击 创建发布单

  3. 创建发布单 页面,填写以下发布信息后,点击 下一步

    • 基本信息

      • 标题:发布标题。例如 Demodeploy
      • 类型:仅支持分组发布。
      • 命名空间:选择待发布的应用服务所属的命名空间。
      • 应用服务发布列表:在 待选应用服务列表 中单击选择需要的应用服务:aks-transfermoney-client、aks-transfermoney-server。点击 > 图标将应用服务添加到 已选应用服务列表 中。

        说明:若应用服务存在多个提交版本,需要选择要发布的版本。默认选择最新的版本。

    • 高级配置

      设置应用服务依赖关系:aks-transfermoney-client 依赖于 aks-transfermoney-server。

  4. 预览 页面确认信息无误后,点击 创建。系统会自动跳转到 发布单详情 页面,点击 整体发布 即可开始发布。

步骤六:验证结果

验证应用服务 aks-transfermoney-client 及 aks-transfermoney-server 是否在双集群中发布成功。

操作步骤

  1. 登录控制台,在左侧导航栏点击 发布运维 > 应用服务
  2. 在应用服务列表中,分别点击 aks-transfermoney-client 及 aks-transfermoney-server 进入实例详情页。
  3. 在 Pod 页签中,查看两个应用服务在两个部署单元中均有一个应用容器运行中。

更多应用服务内容,参考 查看应用服务详情

步骤七:客户端触发批量操作

  1. 在页面的 网络 > 负载均衡 中获取刚刚创建的 client 应用服务的 SLB Service 公网 IP 地址。
  2. 在本地执行以下 curl 命令,以 1000 并发启动客户端进行批量调用服务。

    说明:若客户端实例有多个,则多调用几次, SLB 默认是轮询配置。本示例为 1 个客户端实例。

    1. # 启动,最高并发1000
    2. # 转账client因高并发 (max 1000)导致实例宕机,系统会自动重启容器应用
    3. curl -X POST "http://$Money_Client_SERVICE_IP/webapi/transferclient/start?concurrency=1000&minamount=100&maxamount=100"
    4. # 统计
    5. curl http://$Money_Client_SERVICE_IP/webapi/transferclient/gauges
    6. # 停止
    7. curl -X PUT "http://$Money_Client_SERVICE_IP/webapi/transferclient/stop"


步骤八:创建业务监控大盘

  1. 实时监控自定义监控 页面,创建如下各种维度的监控项:

    说明:监控项配置完成后,约 2 至 3 分钟后可以查看监控数据。点击左侧导航栏自定义监控,然后点击您新增的监控项,可查看统计值。具体步骤请参考 配置自定义业务监控

    • 服务端响应请求的容器所在 Cell

      说明:具体操作步骤请参考 秒级统计_多 Key

      • 监控类型:秒级统计/多 Key。
      • 监控配置名:输入监控项名称,例如:transferserver_cell。
      • 所属应用:选择本教程中创建的 server 应用服务。
      • 采集日志文件:选择 Server 应用服务中指定的日志路径。例如:/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
      • 列值分组:指定分组列为 Cell。
      • 统计方式: 求值方式为求行数。
    • 应用版本

      说明:具体操作步骤请参考 秒级统计_多 Key

      • 监控类型:秒级统计/多 Key。
      • 监控配置名:输入监控项名称,例如:transferserver_Version。
      • 所属应用:选择本教程中创建的 server 应用服务。
      • 采集日志文件:选择 Server 应用服务中指定的日志路径。例如:/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
      • 列值分组:指定分组列为 Version。
      • 统计方式: 求值方式为求行数。
    • 客户端记录的 http 访问结果码:

      说明:具体操作步骤请参考 秒级统计_多 Key

      • 监控类型:秒级统计/多 Key。
      • 监控配置名:输入监控项名称,例如:transferclient_httpstatus。
      • 所属应用:选择本教程中创建的 client 应用服务。
      • 采集日志文件:选择 client 应用服务的日志路径。例如:/home/admin/release/run/logs/aks-transfermoney-client/digest/transfermoney.log
      • 列值分组:指定分组列为 HttpStatus。
      • 统计方式: 求值方式为求行数。
    • 转出账户名称按分钟的 Top 统计

      说明:具体操作步骤请参考 分钟统计 Top

      • 监控类型:分钟统计 Top。
      • 监控配置名:输入监控项名称,例如:transfer_top_From。
      • 所属应用:选择本教程中创建的 server 应用服务。
      • 采集日志文件:选择 Server 应用服务中指定的日志路径。例如:/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
      • 列值分组:指定分组列为 From。
      • 统计方式: 最大排名数为 10,求值方式为求行数。
    • 转入账户名称按分钟的 Top 统计

      说明:具体操作步骤请参考 分钟统计 Top

      • 监控类型:分钟统计 Top。
      • 监控配置名:输入监控项名称,例如:transfer_top_To。
      • 所属应用:选择本教程中创建的 server 应用服务。
      • 采集日志文件:选择 Server 应用服务中指定的日志路径。例如:/home/admin/release/run/logs/aks-transfermoney-server/digest/transfermoney.log
      • 列值分组:指定分组列为 To。
      • 统计方式: 最大排名数为 10,求值方式为求行数。
    • 分钟级客户端调用统计

      说明:具体操作步骤请参考 分钟统计_多 Key

      • 监控类型:分钟统计/多 Key。
      • 监控配置名:输入监控项名称,例如:transferclient_status_minutes。
      • 所属应用:选择本教程中创建的 client 应用服务。
      • 采集日志文件:选择 client 应用服务的日志路径。例如:/home/admin/release/run/logs/aks-transfermoney-client/digest/transfermoney.log
      • 列值分组:指定分组列为 status。
      • 求值方式:对列值求平均。
      • 求平均列:latency。
  2. 自定义监控 页面,新建 TransferMoney 大盘,配置如下:

    • 名称:TransferMoney 大盘。
    • 大盘布局:点击新增报表,添加上一步中创建的各类监控项。具体配置参数参见实时监控用户指南中的 大盘 章节。

可以将自定义的 TransferMoney 大盘添加到 关键业务大盘 中,方便查看各个维度进行统计的信息: