本文以一个同城双活架构下的双集群发布模式为例,引导您快速熟悉 LHC 的操作链路。
LHC 也支持在单元化架构下发布应用,具体内容参见 概述。
双机房场景下,推荐单元化工作空间与可用区(机房)是 1:2 的关系。
背景信息
部署架构如下图:在 SOFAStack 租户下,在同一地域内,创建一个工作空间组,关联两个工作空间,分别对应两个不同的可用区(机房),每个机房对应一个部署单元(Cell)。
步骤一:创建单元化工作空间
该步骤中您将创建一个包含双可用区的单元化工作空间。
登录 LHC 控制台。
在左侧导航栏,单击下方的 全局设置,进入工作空间列表页面。
单击 创建工作空间,选择 单元化工作空间 类型,单击 创建。
在 创建工作空间 页面,输入以下基本信息。
工作空间标识:2~45 个字符,以大小写字母开头,只能包含字母和数字。工作空间标识全局唯一,一经确定无法修改,例如:dev、test、prod 等。本例中输入:
DemoWSG
。工作空间名称:1~64 个字符,工作空间的显示名称,例如:开发工作空间、测试工作空间、生产工作空间。本例中输入:
DemoWSG
。地域:工作空间所在的地域(Region),一个工作空间一定属于某个地域。
网络类型:选择 VPC 网络。
导入 VPC:保持默认关闭状态。
单击 下一步,在 创建单元架构 页面单击 添加可用区。 每个工作空间配置的可用区(Available Zone)个数无限制。本例中为工作空间配置两个可用区,为支持双机房高可用等架构做准备。
说明系统会根据可用区配置自动为您生成单元化架构拓扑,划分好逻辑单元和部署单元。
单击 下一步,在 创建 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://
开头。
单击 下一步,在 创建安全组 页面,单击 添加安全组,在弹出的 添加安全组 窗口,填写以下信息,单击 确定。
安全组名称:长度为 2~128 个英文或中文字符,只能包含字母、数字、短横线以及
.
,必须以字母开头。系统自动生成单元化工作空间标识-sg
组成的默认名称。描述:可包含 2~256 个中英文字符,不能以
http://
和https://
开头。规则:保持默认设置,接受所有的出入访问。
单击 确定 返回 创建安全组 页面,单击 提交。
步骤二:创建集群
集群是运行工作负载的逻辑分组,包含一组云服务器资源,每台云服务器即集群中的一个节点。首次使用 LHC 时,您需要创建一个初始集群,并添加至少一个节点。
前提条件
您拥有 LHC 管理员权限。
已创建单元化工作空间。
首次使用 ACK 集群时,需先授权 ACK 访问云资源的权限,详情参见 首次使用容器服务 Kubernetes 版。
本例中,您将为两个可用区分别创建一个集群:democluster1
、democluster2
,实现同城双活的架构。
同一个可用区无法创建多个集群。如当前可用区/交换机均已经有集群,请到工作空间管理页面添加新的可用区和交换机到当前工作空间。
操作步骤
登录 LHC 控制台,在左侧导航栏单击 集群管理 > 集群详情。
在集群列表页,单击 创建集群。
在 集群创建 页面,系统会自动进行预检查,确保相关的产品已经开通并且租户下的账户余额大于 100 元。预检查通过后,单击 下一步。
说明若检查失败,完成修复失败项目后,可以单击 重新检查 操作重新进行预检查。
在 基本配置 页面,完成以下集群基础选项配置后,单击 下一步。
基本信息:
专有网络:Kubernetes 集群仅支持专有网络。您可以在已有 VPC 列表中选择所需的 VPC。
集群名称:应包含 1~63 个字符,可包含数字、汉字、英文字符或中划线(-)。本例中分别输入:
democluster1
、democluster2
。Kubernetes 版本:选择 Kubernetes 版本。支持
1.16.9-aliyun.1
、1.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。
高级配置:保持默认设置。更多信息参见 创建集群。
在 节点配置 页面,完成以下 Worker 节点配置。
付费类型:支持 按量付费 和 包年包月 两种节点付费类型。选择 包年包月 时,需设置以下参数。
购买时长:目前支持选择 1、2、3、6 个月和 1~5 年。
自动续费:设置是否自动续费。
节点数量:创建 Worker 实例(ECS 实例)的数量。
实例规格:支持选择多个实例规格。详情请参见 实例规格族。最多可选择 10 个实例规格。
说明可以选择多个规格作为备选,每个节点创建时,将从第一个规格开始尝试购买,直到创建成功,最终购买的实例规格可能随库存变化而不同。
系统盘:支持 SSD 云盘、高效云盘、ESSD 云盘。
挂载磁盘:支持 SSD 云盘、高效云盘、ESSD 云盘。
操作系统:支持 CentOS 和 Alibaba Cloud Linux 操作系统。
登录密码:设置节点的登录密码。8~30 个字符,且同时包含三项(大写字母、小写字母、数字和特殊符号)。
确认密码:确认设置的节点登录密码。
配置完成后,单击 下一步。
在集群的 配置预览 页面,确认配置无误后,单击 提交。
说明一个包含多节点的 Kubernetes 集群的创建时间一般约为十分钟。
系统会自动跳转到 创建集群详情 页面。在集群的创建过程中,若出现任务失败的情况,可单击事件查看具体错误详情,或单击 重试 或 忽略。
在 导入集群 页面,完成以下配置。
配置项
说明
集群类型
阿里云
专有网络
从已有 VPC 列表中,选择所需的 VPC。
选择已有集群
从已有集群列表中,选择您需要导入的 ACK 集群。
部署单元
可以为可用区设置不同的部署单元。
如需修改部署单元,可前往 全局设置 > 工作空间详情 进行设置。
步骤三:创建转账应用
在 应用管理 控制台创建名为 transfer-money 的应用。
操作步骤
登录应用管理控制台,在左侧导航栏单击 应用列表。
在 应用列表 页面,单击右上角的 创建应用。
在 创建应用 页面输入以下信息,单击 提交。
步骤四:准备镜像
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
。具体步骤参见 创建联邦命名空间。
创建转账服务端的应用服务
登录控制台,在左侧导航栏单击 发布运维 > 应用服务。
在应用服务列表页,单击 创建应用服务。
在 创建应用服务 页面,填写以下基本信息,单击 下一步。
命名空间:选择一个集群中的命名空间(namespace),默认为列表第一个。
应用服务名称:容器服务的名称,输入
aks-transfermoney-server
。应用服务名称允许包含(小写)字母、数字、连字符,且必须以字母开头,以字母或数字结尾。同一个命名空间下不允许同名。所属应用:选择
transfer-money
。描述:选填。容器服务的描述。
在 Pod 模板配置 页面,填写以下信息,单击 下一步。
容器名称:输入名称。容器名称允许包含(小写)字母、数字、连字符、且必须以字母开头、以字母或者数字结尾,最多允许输入 63 个字符。
访问类型:选择 镜像仓库,使用示例镜像 aks-transfermoney-server,镜像地址参见 准备镜像。
CPU 配置:请求核数 为 200 millicores,最大核数 为 500 cores。
内存配置:请求内存 为 512 MiB,最大内存 为 1 GiB。
在 高级配置 > 环境变量配置 中,配置
APPSVC_VERSION = V1
,ANTCLOUD_SOFA_PROFILE = prod
。在 高级配置 > 健康检查配置 中,配置 Readiness Probe 检查方法为
Http GET
方法 、访问路径为/health/readiness
、访问端口8080
。其余项按照输入框提示配置。配置覆盖:保持关闭。
在 弹性配置 页面,填写以下信息,单击 下一步。
副本伸缩策略配置:目前仅支持 固定副本数,默认为 0,勾选部署单元(
RZ01A
、RZ02A
)并修改为期望副本数 1,即应用服务运行时保持固定数目的 Pod 副本。在 访问配置 页面,填写以下信息,单击 下一步。
在 访问配置 页面,单击 添加负载均衡。
在 负载均衡 窗口,填写以下信息后,单击 确定。
负载均衡名称:填写服务名称。系统默认生成服务名称前缀为
应用服务名称-
。说明需记录下这个 Service Name,需要以环境变量形式配置到客户端应用。
访问方式:选择 内网。创建一个内部的 Service,并将流量转发到容器的相应端口上。
端口映射:单击 添加端口映射,填写以下信息。其余保持默认设置。
协议:选择 TCP。
转发规则:选择 RR 轮询。
前端端口:容器镜像中工作负载程序实际监听的端口,输入
80
。后端端口:容器端口映射到集群虚拟 IP 上的端口,输入
8341
。
在 部署和调度配置 页面,为应用服务保持系统默认配置,单击 下一步。
在应用服务 预览 页面,确认信息无误,单击 提交。
说明该应用服务配置编辑完成提交后,进行版本备注,方便区分版本。
创建转账客户端的应用服务
登录控制台,在左侧导航栏单击 发布运维 > 应用服务。
在应用服务列表页,单击 创建应用服务。
在 创建应用服务 页面,填写以下基本信息,单击 下一步。
命名空间:选择一个集群中的命名空间(namespace),默认为列表第一个。
应用服务名称:容器服务的名称,输入
aks-transfermoney-client
。服务实例名称允许包含(小写)字母、数字、连字符,且必须以字母开头,以字母或数字结尾。同一个命名空间下不允许同名。所属应用:选择
transfer-money
。负责人:选择该应用服务的负责人。
描述:选填。容器服务的描述。
在 Pod 模板配置 页面,填写以下信息,单击 下一步。
容器名称:输入名称。
访问类型:选择 镜像仓库,使用示例镜像 aks-transfermoney-client,镜像地址参见 准备镜像。
CPU 配置:请求核数 为 200 millicores,最大核数 为 500 core。
内存配置:请求内存 为 512 MiB,最大内存 为 1 GiB。
在 高级配置 > 环境变量配置 中,配置变量名称为 SERVER_TM_ADDRESS,Server 端值为 Service Name。
在 弹性配置 页面,填写以下信息,单击 下一步。
副本伸缩策略配置:目前仅支持固定副本数,默认为 0,勾选部署单元(
RZ01A
、RZ02A
)并修改为期望副本数 1,即应用服务运行时保持固定数目的 Pod 副本。每个 client 能够压测并发上限为 1000。在 访问配置 页面,单击 添加负载均衡,填写以下信息,单击 下一步。
在 负载均衡 窗口,填写以下信息后,单击 确定。
负载均衡名称:填写服务名称。系统默认生成服务名称前缀为
应用服务名称-
。访问方式:选择 外网。创建一个内部的 Service,并将流量转发到容器的相应端口上。
说明选取两个应用服务并进行串行发布。配置外部 Service 会创建一个公网的 LoadBalancer,并将流量转发到容器的相应端口上。访问方式由公网负载均衡服务地址以及设置的访问端口组成,例如
10.117.117.117:80
。访问方式:选择 外网。创建一个内部的 Service,并将流量转发到容器的相应端口上。
端口映射:单击 添加端口映射,填写以下信息。其余保持默认设置。
协议:选择 TCP。
转发规则:选择 RR 轮询。
前端端口:容器镜像中工作负载程序实际监听的端口,输入
80
。后端端口:容器端口映射到集群虚拟 IP 上的端口,输入
8341
。
在 部署和调度配置 页面,为应用服务保持系统默认配置,单击 下一步。
在应用服务 预览 页面,确认信息无误,单击 提交。
说明该应用服务配置编辑完成提交后,进行版本备注,方便区分版本。
在 部署和调度配置 页面,为应用服务保持系统默认配置,单击 下一步。
在应用服务 预览 页面,确认信息无误,单击 提交。
说明该应用服务配置编辑完成提交后,进行版本备注,方便区分版本。
步骤六:创建发布单
通过发布单同时发布上一步中创建的两个有依赖关系的应用服务。
选取两个应用服务并进行串行发布。
操作步骤
登录控制台,在左侧导航栏单击 发布运维 > 发布单 进入发布部署大盘。
在发布部署大盘,单击 创建发布单。
在 创建发布单 页面,填写以下发布信息后,单击 下一步。
基本信息
标题:发布标题。例如
Demodeploy
。类型:仅支持分组发布。
命名空间:选择待发布的应用服务所属的命名空间。
应用服务发布列表:在 待选应用服务列表 中单击选择需要的应用服务:aks-transfermoney-client、aks-transfermoney-server。单击 > 图标将应用服务添加到 已选应用服务列表 中。
说明若应用服务存在多个提交版本,需要选择要发布的版本。默认选择最新的版本。
高级配置
设置应用服务依赖关系:aks-transfermoney-client 依赖于 aks-transfermoney-server。
在 预览 页面确认信息无误后,单击 创建。系统会自动跳转到 发布单详情 页面,单击 整体发布 即可开始发布。
步骤七:验证结果
验证应用服务 aks-transfermoney-client 及 aks-transfermoney-server 是否在双集群中发布成功。
操作步骤
登录控制台,在左侧导航栏单击 发布运维 > 应用服务。
在应用服务列表中,分别单击 aks-transfermoney-client 及 aks-transfermoney-server 进入实例详情页。
在 Pod 页签中,查看两个应用服务在两个部署单元中均有一个应用容器运行中。
更多应用服务内容,参见 查看应用服务详情 。