步骤二:初始化环境

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

说明

本文仅适用于公有云杭州金区环境。

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

  1. 登录 SOFAStack 控制台。

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

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

    • 标准工作空间:标准工作空间(Workspace)是 SOFAStack 提供的一种组织机制,将服务于不同目标、阶段的资源分组隔离管理。您可以根据研发运维流程,为每个阶段分配工作空间,例如单机房(即单可用区)的开发工作空间、双机房(即包括两个可用区)的生产工作空间。

    • 单元化工作空间:在标准工作空间的基础上提供了单元化能力,可用于同城双活及异地容灾场景,本质是一组标准工作空间的集合。您可以通过单元化工作空间组对用户资源进行隔离,不同工作空间组下的集群彼此隔离。

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

    • 工作空间标识:2-64 个字符,工作空间的英文标识,全局唯一,一经确定无法修改,例如:dev、test、prod 等。本例中输入:DemoIDC

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

    • 地域:选择工作空间所在的地域(Region)。

    • 网络类型:选择 VPC 网络

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

    说明

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

  6. 单击 下一步,在 创建 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 网段的子网。

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

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

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

    • 安全组名称:可以为空,长度为 2-128个英文或中文字符,必须以大小写字母或中文开头,不能以 http://https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。

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

    • 规则:保持默认设置。

步骤二:创建集群

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

说明

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

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

  1. 在左侧导航栏单击 运维管理 > 多集群容器引擎,进入 LHC 控制台。

  2. 单击 集群管理 > 集群详情

  3. 集群列表 页,单击 创建集群

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

    说明

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

  5. 基本配置 页面,填写以下配置信息。

    • 专有网络:选择当前单元化工作空间所属的 VPC。

    • 集群名称:集群显示名称,不能为空。本例中分别输入:democluster1democluster2

    • Kubernetes 版本:选择 Kubernetes 版本。可选择 1.16.9-aliyun.11.18.8-aliyun.1

    • 容器运行时docker 19.03.5

    • 网络配置

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

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

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

      • Service CIDR:设置 Service CIDR。网段不能与 VPC 及 Pod 地址段重复,创建成功后不能修改。

      • 高级配置

        • 配置 SNAT:不可修改,默认选中。创建集群时,默认不开通公网。如果您选择的 VPC 不具备公网访问能力,选中为专有网络配置 SNAT 后,ACK 将为您创建 NAT 网关并自动配置 SNAT 规则。

        • 公网访问:设置是否开放使用 EIP 暴露 API Server。API Server 提供了各类资源对象(Pod、Service 等)的增删改查及 watch 等 HTTP Rest 接口。

          • 若选择开放,会创建一个 EIP,并挂载到内网 SLB 上。此时,Master 节点的 6443 端口(对应 API Server)暴露出来,您可以在外网通过 kubeconfig 连接并操作集群。

          • 若选择不开放,则不会创建 EIP,您只能在 VPC 内部用 kubeconfig 连接并操作集群。

            说明

            若需获取 kubeconfig 信息,请前往 ACK 控制台

        • kube-proxy 代理模式:支持 iptables 和 IPVS 两种模式。

          • iptables:成熟稳定的 kube-proxy 代理模式,Kubernetes service 的服务发现和负载均衡使用 iptables 规则配置,但性能一般,受规模影响较大,适用于集群存在少量的 Service。

          • IPVS:高性能的 kube-proxy 代理模式,Kubernetes service 的服务发现和负载均衡使用 Linux ipvs 模块进行配置,适用于集群存在大量的 service,对负载均衡有高性能要求的场景。

        • 集群删除保护:防止通过控制台或者 API 误删除集群。默认选中,可修改。

        • 部署单元:默认勾选使用默认配置。若取消勾选,可以为可用区设置不同的部署单元,若需要修改部署单元,可前往 经典应用服务控制台 > 环境参数 进行设置。

        • 数据盘挂载:默认勾选 使用日志服务,不可修改,将自动创建名称为 k8s-log-{ClusterID} 的 Project。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 在集群的创建过程中,若出现任务失败的情况,可单击事件查看具体错误详情,或单击 重试忽略

步骤三:创建网关集群

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

说明

创建好统一接入网关集群后,您还需要为网关集群创建统一接入实例,并为应用服务里创建负载均衡类型的 Service,才能进行各类业务流量的接入。

  1. 登录 LHC 控制台,在左侧导航栏单击 网络 > 统一接入集群

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

  3. 创建网关集群 页面,填写以下配置信息。

    • 集群名称:集群名称允许长度为 1-63 个字符,只包含小写字母、数字、中划线、且必须以字母开头、以字母或者数字结尾。

    • 网络类型:可指定的网络类型包括内网、公网。指定集群的网络类型后,该集群上仅能创建与之相同网络类型的统一接入实例。

    • 初始集群状态:可选择 在线维护

      • 在线:网关集群对外提供流量转发服务,同时可以接受转发规则的更新。

      • 维护:网关集群仅对外提供流量转发服务,但不接受转发规则的更新请求。

    • 容器规格:容器的规格和节点的数量决定了该集群的请求处理能力,最小规格为 1 核 CPU 1 GB 内存 5GB 磁盘。

    • host 网络模式:网关集群所采用的网络模型。若选择否,每个 Pod 会拥有独立 IP。

    • 容器版本配置

      • 名称:版本名称允许长度为 1-63 个字符,只包含小写字母、数字、中划线、且必须以字母开头、以字母或者数字结尾。

      • 容器镜像:输入网关节点的容器镜像地址。示例镜像:registry.cn-hangzhou.aliyuncs.com/sofastack/spanner:1.3.0

      • 副本数:输入网关节点数,最大值为 100。

      • 标签:可选,label key 由两部分组成:前缀(可选)和名称,通过/划分。名称部分最多 63 个字符,以 [a-z]、[0-9]、[A-Z] 开头和结尾,且中间包含数字字母和 _ - . 。前缀是可选的,使用时须符合 DNS subdomain 规范,即一系列 DNS label 用 . 拼接,总长度不超过 253 个字符,kubernetes.io/k8s.io/为保留前缀。Label values 最多包含 63 个字符,以 [a-z]、[0-9]、[A-Z] 开头和结尾,且中间包含数字字母和 _ - . ,value 目前不可为空。

步骤四:创建统一接入实例

前提条件

  • 创建统一接入集群

  • 网关集群的状态是 在线维护中,且网络类型与接入实例的网络类型一致。

操作步骤

  1. 登录 LHC 控制台。

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

  3. 单击 创建实例,填写以下配置信息:

    • 基本信息

      • 实例名称:必填,允许包含小写字母、数字、中划线、且必须以字母开头、以字母或者数字结尾。允许长度为 1-63 个字符。不可与已有实例名称重复。

      • 网络类型:支持 内网公网

      • 统一接入集群:选择可用的接入集群。

    • 配置信息

      • http 协议:必填。设置 前端端口 号,范围为 1-65535。

      • https 协议:选填。需设置 前端端口 号以及 证书 ID

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

  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_TEST_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_TEST_POC

    • 目标单元:选择消息将被同步到的 Topic 所属单元,如 RZONE

    • 目标 Topic:输入消息将被同步到的 Topic 名称,如 TP_TEST_POC

    • 起始同步位点:选择从源 Topic 中的消息队列的哪个位置开始进行消息同步,即从这个位置之后进入队列的消息都会被同步到目标 Topic。根据实际需要选择即可。

      • 最小位点:即任务首次启动之后,从有效期内最早写入源 Topic 队列的消息开始同步,首次任务启动之前发的消息不会被同步。

      • 最大位点:即任务首次启动之后,从最新写入源 Topic 队列的消息开始同步,首次任务启动之前发的消息不会被同步。

      • 自定义位点:选择从源 Topic 中的消息队列的哪个位置开始进行消息同步,首次任务启动之前发的消息不会被同步。

    • 描述:选填,输入对该同步任务的具体描述或备注。

  4. 单击 确定

数据访问代理初始化

详情请参见 使用双机房 ODP 实例