快速入门

本文以一个同城双活架构下的双集群发布模式为例,引导您快速熟悉 LHC 的操作链路。

LHC 也支持在单元化架构下发布应用,具体内容参见 概述

说明

双机房场景下,推荐单元化工作空间与可用区(机房)是 1:2 的关系。

背景信息

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

架构

步骤一:创建单元化工作空间

该步骤中您将创建一个包含双可用区的单元化工作空间。

  1. 登录 LHC 控制台。

  2. 在左侧导航栏,单击下方的 全局设置,进入工作空间列表页面。

  3. 单击 创建工作空间,选择 单元化工作空间 类型,单击 创建

  4. 创建工作空间 页面,输入以下基本信息。

    • 工作空间标识:2~45 个字符,以大小写字母开头,只能包含字母和数字。工作空间标识全局唯一,一经确定无法修改,例如:dev、test、prod 等。本例中输入:DemoWSG

    • 工作空间名称:1~64 个字符,工作空间的显示名称,例如:开发工作空间、测试工作空间、生产工作空间。本例中输入:DemoWSG

    • 地域:工作空间所在的地域(Region),一个工作空间一定属于某个地域。

    • 网络类型:选择 VPC 网络

    • 导入 VPC:保持默认关闭状态。

  5. 单击 下一步,在 创建单元架构 页面单击 添加可用区。 每个工作空间配置的可用区(Available Zone)个数无限制。本例中为工作空间配置两个可用区,为支持双机房高可用等架构做准备。

    说明

    系统会根据可用区配置自动为您生成单元化架构拓扑,划分好逻辑单元和部署单元。

    单元化架构

  6. 单击 下一步,在 创建 VPC 页面,输入以下配置信息:

    • 专有网络名称:由 2~128 个英文或中文字符组成,必须以大小字母或中文开头,可包含数字、下划线(_) 或连字符(-)。可以使用系统自动生成的名称 单元化工作空间标识-vpc

    • 专有网络网段:专有网络的网段,一旦选择便无法更改,专有网络内的所有资源,如 ECS、RDS、SLB 的私网 IP 都在该网段内。可选网段如下:

      • 10.0.0.0/8

      • 172.16.0.0/12

      • 192.168.0.0/16

    • 描述:非必填,填写专有网络描述内容。不能以 http://https:// 开头。

    • 交换机:单击 添加交换机,在弹出的 创建交换机 窗口,填写以下信息,单击 提交

      • 名称:交换机名称。长度为 2~128 个字符,以英文字母或中文开头,可包含数字、下划线(_)和短横线(-)。系统自动生成 单元化工作空间标识-vsw 组成的默认名称。

      • 可用区:交换机的可用区。同一 VPC 内不同可用区的交换机内网互通。您需要为每个可用区创建一台交换机。

      • 自定义网段:默认关闭。开启后,需填写网段地址。交换机的网段可以和其所属的 VPC 网段相同或者是其 VPC 网段的子网。

      • 子网掩码自定义网段 关闭时,需分别选择子网掩码和网段地址。默认专有的网段掩码是 24 位,例如 172.31.0.0/24。范围为 16~29 位之间,可提供 65532 个地址。

      • 描述: 输入交换机的描述信息。可包含 2~256 个中英文字符,不能以 http://https:// 开头。

  7. 单击 下一步,在 创建安全组 页面,单击 添加安全组,在弹出的 添加安全组 窗口,填写以下信息,单击 确定

    • 安全组名称:长度为 2~128 个英文或中文字符,只能包含字母、数字、短横线以及 .,必须以字母开头。系统自动生成 单元化工作空间标识-sg 组成的默认名称。

    • 描述:可包含 2~256 个中英文字符,不能以 http://https:// 开头。

    • 规则:保持默认设置,接受所有的出入访问。

  8. 单击 确定 返回 创建安全组 页面,单击 提交

步骤二:创建集群

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

前提条件

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

说明

同一个可用区无法创建多个集群。如当前可用区/交换机均已经有集群,请到工作空间管理页面添加新的可用区和交换机到当前工作空间。

操作步骤

  1. 登录 LHC 控制台,在左侧导航栏单击 集群管理 > 集群详情

  2. 在集群列表页,单击 创建集群

  3. 集群创建 页面,系统会自动进行预检查,确保相关的产品已经开通并且租户下的账户余额大于 100 元。预检查通过后,单击 下一步

    说明

    若检查失败,完成修复失败项目后,可以单击 重新检查 操作重新进行预检查。

  4. 基本配置 页面,完成以下集群基础选项配置后,单击 下一步

    • 基本信息

      • 专有网络:Kubernetes 集群仅支持专有网络。您可以在已有 VPC 列表中选择所需的 VPC。

      • 集群名称:应包含 1~63 个字符,可包含数字、汉字、英文字符或中划线(-)。本例中分别输入:democluster1democluster2

      • Kubernetes 版本:选择 Kubernetes 版本。支持 1.16.9-aliyun.11.18.8-aliyun.1。本例中选择 1.18.8-aliyun.1

      • 容器运行时docker 19.03.5

    • 网络配置

      • 虚拟交换机:您可以在已有虚拟交换机列表中,根据可用区选择所需交换机。如果没有您需要的交换机,可以通过单击 创建虚拟交换机 进行创建,请参见 创建交换机

      • 网络插件:设置启用的网络插件,支持 Terway 网络插件,Terway 是阿里云容器服务自研的网络插件,将阿里云的弹性网卡分配给容器,支持 Kubernetes 的 Network Policy 来定义容器间的访问策略,支持对单个容器做带宽的限流。具体请参见 Flannel 与 Terway

      • Pod 虚拟交换机:网络插件使用 Terway 时,需要为 Pod 分配 IP 的虚拟交换机。每个 Pod 虚拟交换机分别对应一个 Worker 实例的虚拟交换机。如果没有您需要的交换机,可以通过单击 创建虚拟交换机 进行创建,请参见 创建交换机

      • Service CIDR:设置 Service CIDR。网段不能与 VPC 及 Pod 地址段重复,创建成功后不能修改。可选范围:10.0.0.0/16-24,172.16-31.0.0/16-24,192.168.0.0/16-24。

    • 高级配置:保持默认设置。更多信息参见 创建集群

  5. 节点配置 页面,完成以下 Worker 节点配置。

    • 付费类型:支持 按量付费包年包月 两种节点付费类型。选择 包年包月 时,需设置以下参数。

      • 购买时长:目前支持选择 1、2、3、6 个月和 1~5 年。

      • 自动续费:设置是否自动续费。

    • 节点数量:创建 Worker 实例(ECS 实例)的数量。

    • 实例规格:支持选择多个实例规格。详情请参见 实例规格族。最多可选择 10 个实例规格。

      说明

      可以选择多个规格作为备选,每个节点创建时,将从第一个规格开始尝试购买,直到创建成功,最终购买的实例规格可能随库存变化而不同。

    • 系统盘:支持 SSD 云盘、高效云盘、ESSD 云盘。

    • 挂载磁盘:支持 SSD 云盘、高效云盘、ESSD 云盘。

    • 操作系统:支持 CentOS 和 Alibaba Cloud Linux 操作系统。

    • 登录密码:设置节点的登录密码。8~30 个字符,且同时包含三项(大写字母、小写字母、数字和特殊符号)。

    • 确认密码:确认设置的节点登录密码。

  6. 配置完成后,单击 下一步

  7. 在集群的 配置预览 页面,确认配置无误后,单击 提交

    说明
    • 一个包含多节点的 Kubernetes 集群的创建时间一般约为十分钟。

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

  8. 导入集群 页面,完成以下配置。

    配置项

    说明

    集群类型

    阿里云

    专有网络

    从已有 VPC 列表中,选择所需的 VPC。

    选择已有集群

    从已有集群列表中,选择您需要导入的 ACK 集群。

    部署单元

    可以为可用区设置不同的部署单元。

    如需修改部署单元,可前往 全局设置 > 工作空间详情 进行设置。

步骤三:创建转账应用

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

操作步骤

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

  2. 应用列表 页面,单击右上角的 创建应用

  3. 创建应用 页面输入以下信息,单击 提交

    • 应用名称:输入 transfer-money

      说明

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

    • 技术栈:选择 SOFABoot

    • 应用分组:选择已创建的应用分组。更多信息参见 管理应用分组

    • 应用标签:应用分级标签,便于进行应用快速检索,支持添加系统标签和自定义标签。

    • 应用描述:选填,应用描述的长度不能超过 500 个字符,如 这是一个示例应用。更多信息参见 管理应用

步骤四:准备镜像

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 模板配置 页面,填写以下信息,单击 下一步

    • 容器名称:输入名称。容器名称允许包含(小写)字母、数字、连字符、且必须以字母开头、以字母或者数字结尾,最多允许输入 63 个字符。

    • 访问类型:选择 镜像仓库,使用示例镜像 aks-transfermoney-server,镜像地址参见 准备镜像

    • CPU 配置请求核数 为 200 millicores,最大核数 为 500 cores。

    • 内存配置请求内存 为 512 MiB,最大内存 为 1 GiB。

    • 高级配置 > 环境变量配置 中,配置 APPSVC_VERSION = V1ANTCLOUD_SOFA_PROFILE = prod

    • 高级配置 > 健康检查配置 中,配置 Readiness Probe 检查方法为 Http GET 方法 、访问路径为 /health/readiness、访问端口 8080。其余项按照输入框提示配置。

    • 配置覆盖:保持关闭。

  5. 弹性配置 页面,填写以下信息,单击 下一步

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

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

    1. 访问配置 页面,单击 添加负载均衡

    2. 负载均衡 窗口,填写以下信息后,单击 确定

      • 负载均衡名称:填写服务名称。系统默认生成服务名称前缀为 应用服务名称-

        说明

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

      • 访问方式:选择 内网。创建一个内部的 Service,并将流量转发到容器的相应端口上。

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

        • 协议:选择 TCP。

        • 转发规则:选择 RR 轮询

        • 前端端口:容器镜像中工作负载程序实际监听的端口,输入 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。

  5. 弹性配置 页面,填写以下信息,单击 下一步

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

  6. 访问配置 页面,单击 添加负载均衡,填写以下信息,单击 下一步

    1. 负载均衡 窗口,填写以下信息后,单击 确定

      • 负载均衡名称:填写服务名称。系统默认生成服务名称前缀为 应用服务名称-

      • 访问方式:选择 外网。创建一个内部的 Service,并将流量转发到容器的相应端口上。

        说明

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

      • 访问方式:选择 外网。创建一个内部的 Service,并将流量转发到容器的相应端口上。

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

        • 协议:选择 TCP。

        • 转发规则:选择 RR 轮询

        • 前端端口:容器镜像中工作负载程序实际监听的端口,输入 80

        • 后端端口:容器端口映射到集群虚拟 IP 上的端口,输入 8341

  7. 部署和调度配置 页面,为应用服务保持系统默认配置,单击 下一步

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

    说明

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

  9. 部署和调度配置 页面,为应用服务保持系统默认配置,单击 下一步

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

    说明

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

步骤六:创建发布单

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

说明

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

操作步骤

  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 页签中,查看两个应用服务在两个部署单元中均有一个应用容器运行中。

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