玩转数人云:10分钟建立wordpress集群网站

玩转数人云第二辑:建立能够横向扩展、负载均衡的wordpress集群网站。

上一辑我们介绍了如何 做一个无状态的2048小游戏 ,现在让我们用Wordpress为例,真正的来建立一个集群生产环境。

这也不复杂,基本上还是分两步走:

第一步 建立集群(应用发布环境)

1.1 准备主机

需要准备至少两台主机,至少一台主机拥有公网IP(用于在外网访问搭建好的wordpress站网站)。

本文中使用了6台主机为大家更好的展现如何搭建集群环境。

注:主机既包括可以连接互联网的物理主机,也可以是阿里云、UCloud、 AWS、Azure、首都在线和华为云等公有云上购买的任意一台云主机。

1.2 建立集群

  • 登录数人云 www.shurenyun.com ,在集群管理中,点击"新建集群"
  • 填写集群名称"sales_demo",选择 3 Master 高级版集群,点击完成。(如图所示)

备注:创建 3 Master 集群是为了防止单点故障,保障集群的高可用。生产环境为了保证服务的高可用,我们建议选择 3 Master 或 5 Master 集群。

数人云创建3master集群

1.3 添加主机

  • 将6台主机分别添加到集群"sales_demo"中
  • 不同主机选择不同的主机类型,并根据提示安装docker和Agent。
    • 前三台主机为Master节点,主机类型请选择"计算节点";
    • 第四台主机选择计算节点,用于部署无状态应用;
    • 第五台主机选择计算节点和外部网关。该节点主要用于外部访问,需要配置外网 IP 或域名;
    • 第六台主机选择代理节点和数据节点。数据节点,用于部署有状态的应用,如 Mysql、Redis 等;选择代理节点,是为了对内让wordpress应用可以对接Mysql数据库。

节点类型定义:(一个节点可同时为多个类型)

  • 计算节点:作为集群中动态可支配的计算资源,运行各种无状态应用。
  • 数据节点:将作为集群中数据持久化的节点使用,请将有状态应用(Mysql,Redis等)部署于此节点。
  • 外部网关:将用作集群应用的外部访问入口,此节点需要有固定的公网IP。
  • 内部代理:将用作集群内部不同服务之间的访问。

提示:

  • 实现本案例,所需最小规模集群为2台主机,一台为 Master 节点,另一台包括所有节点类型。本次操作选用6台主机是为了向大家模拟真实集群生产环境。
  • 向同一集群添加的主机应存在于同一网段内,暂不支持跨公网的主机组建集群。

数人云添加主机

1.4 确认集群环境正常

主机添加完成后,检查主机运行是否正常,如图所示:

查看数人云集群环境

第二步发布应用

部署 Wordpress 应用,首先需要部署 Mysql 数据库,然后部署 WordPress 服务。

2.1 新建 Mysql 应用

点击"新建应用",按照如下提示,新建Mysql应用:

  • 填写应用名称:mysql
  • 选择集群:sales-demo
  • 添加应用镜像地址:mysql (docker官方镜像地址)
  • 填写镜像版本:latest
  • 选择应用类型:有状态应用
  • 主机选择:DB-proxy。这里的主机只能从数据节点中选择,目前只有 DB-proxy;有状态应用不能迁移,只能固定在被选择的节点上;另外,有状态应用一次只能部署一个容器;
  • 容器目录:容器内的挂载目录 本例为:/var/lib/mysql
  • 主机目录:主机上的挂载目录 本例为:/var/lib/mysql
  • 选择容器规格: CPU:0.2 内存:256 MB

注:容器目录,主机目录。相当于使用 docker run -v 命令挂载本地目录

数人云添加Mysql应用

高级设置:

  • 填写应用地址: 端口:3306,类型:对内 TCP
  • 选择“对内 TCP”方式,则该应用会向内部代理注册,内部代理对外暴露3306端口;
  • 填写环境变量参数: Key:MYSQL_ROOT_PASSWORD Value:your-password

数人云添加Mysql应用高级设置

填写完成后,点击创建即可。

2.2 新建 Wordpress 应用

点击新建应用,按照如下提示,新建 Wordpress 应用:

  • 填写应用名称:wordpress
  • 选择集群:salesdemo
  • 添加应用镜像地址:wordpress (docker官方镜像地址)
  • 填写镜像版本:latest
  • 选择应用类型:无状态应用
  • 选择容器规格: CPU:0.2 内存:256 MB
  • 容器个数:2 (可根据需要设置实例个数)

用数人云新建wordpress应用

高级设置:

  • 填写应用地址: 端口:80,类型:对外 HTTP,域名:your-website

注:由于 Wordpress 是 HTTP 应用,并可以由外部进行访问,因此选择对外标准 HTTP,会对外暴露 80 端口;同时,需要填写域名:your-website;

  • 填写环境变量参数:
Key:WORDPRESS_DB_HOST  Value:10.3.10.63:3306  
Key:WORDPRESS_DB_USER  Value:root  
Key:WORDPRESS_DB_PASSWORD  Value:your-password  

注1:应用地址选择对外标准 HTTP 时,需要配置相应的域名或外网 IP 到对外网关节点,以确保可以通过公网进行访问;

注2:配置 mysql 地址的环境变量时,mysql 地址应该为内部代理的 IP 和 mysql 的映射端口,根据上述 mysql 配置,该地址为10.3.10.63:3306 (该地址可以在应用详情页的"配置"项中查看)。

WordPress集群网站建设完成!

在应有管理中,即可看到应用已正常运行。

数人云中查看wordpress是否正常

打开浏览器,访问地址:yma.dataman-inc.com (替换成你的域名或者网关 IP),看到如下页面,则说明 Wordpress 应用已经成功运行。

wordpress

恭喜,现在你已经拥有了一个小型的 Wordpress 站点,并且为 web server 创建了 2 个实例,实现了最基础的横向扩展和负载均衡!