学习阿里云架构设计知识2-wp搭建及配置

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: VPC分区清晰架构,VSW网络分隔,CEN连通VPC,按量付费小规格,均衡策略,ESS/ACK内置SNAT,ECS用NAT上网。建DMZ需VPC、VSW、NAT、EIP。主系统多VPC/VSW配ECS和Redis,CEN全连接。CEN设路由表,外网访问设DMZ、CEN、EIP,加堡垒机。Web系统ACR部署WordPress,配数据库。验证WordPress、弹性伸缩,测外访、发文、负载。含架构图。

 

1 关键原则

1.     通过vpc进行功能模块分区,清晰架构

2.     通过vsw进行网络分区,清晰架构

3.     cen的转发路由表连线vpc

4.     能按量付费的就尽量按量付费,规格尽量选小点。

5.     策略相关:基本选均衡策略

6.     essack有自带的snat可以上外网,只有普通的ecs需要通过nat网关配置上网。

2 搭建DMZ

1.     画一个单region多可用区:华东1

2.     创建vpcvpc-hz-dmz172.20.0.0/16

3.     创建vswvsw-hz-dmz-nat-J172.20.0.0/24

4.     创建natnat-hz-dmz

5.     创建两个eipeip-hz-main-proeip-hz-main-test,带宽50Mbps

6.     创建共享流量包:与eip连线

7.     创建堡垒机(跳过部署):bastionhost-hz-dmz

8.     创建两台cen连接专用vsw172.20.254.0/25 + 172.20.254.128/25

3 搭建主系统

3.1 生产环境(pro

1.     创建vpcvpc-hz-main-pro172.16.0.0/16

2.     创建两个vsw:(J172.16.0.0/24 K172.16.1.0/24

3.     每个vsw6ecs:实例名称ecs-hz-main-pro-[1,3]ecs-hz-main-pro-[7,3]

4.     创建redis数据库:kv-hz-main-pro,双可用区,2分片、2副本、12G集群版,白名单CIDR添加两个vsw

image.png

5.     创建安全组:sg-hz-main-pro,成员12ecs + redis,安全组参数默认

6.     创建两台cen连接专用vsw: 172.16.254.0/25172.16.254.128/25

3.2 测试环境(test

1.     创建vpcvpc-hz-main-test172.17.0.0/16

2.     创建vswvsw-hz-main-test-J172.17.0.0/24

3.     创建两台ecscentos+ windows系统

4.     为两台ecs创建安全组sg-hz-main-test,参数默认

5.     创建两台cen连接专用vsw172.17.254.0/25172.17.254.128/25

4 搭建web子系统

1.     创建vpcvpc-hz-web172.18.0.0/16

2.     创建clbvsw1172.18.0.0/24):clb-hz-web

3.     创建eipeip-hz-web

4.     创建ess弹性伸缩组(vsw2+3):两台ecs+ ess组件(ecs-hz-web-ess-J-001 + ecs-hz-web-ess-K-001 + ess-hz-web),ess启动模板名ess-hz-web-tmp,实例健康检查,配置ess连线clb,监听和后端端口均为80

5.     为两台ecs添加安全组:sg-hz-web

6.     rds数据库(vsw4):单可用区部署,100GB,普通账号dbuser,数据库wordpress,授权dbuser读写。

image.png

7.     短信服务器ecs-hz-web-sms-J+短信服务(vsw5):

8.     ack集群+vswvsw5+6):ackvsw连线的交换机类型PodAndNodeack选择pro版,双可用区,TerwayCIDR 10.0.0.0/16,配SNATapi server简约型,3Node,系统盘120GB,标准型公网负载均衡

9.     创建ack要用到的急速型nasnas-hz-web-ack100GB,不加密。

10.  创建两台cen连接专用vsw172.18.254.0/25172.18.254.128/25

11.  创建PTSpts-hz-web,最低配置即可

5 搭建云企业网CEN

1.     创建cencen

2.     创建转发路由器:cen-tr,默认带路由表。

3.     cen连线转发路由器

4.     4vpc连默认路由表:连线配置选择多交换机场景

6 配置外网访问+部署+配置网络

6.1 连线配置外网访问

生产环境ecs、测试环境ecs所在的vsw + 短信服务ecsdmz中的nat连线,配置SNAT。其中测试环境vpc上网走测试eip

6.2 部署(注意截图保存)

1.     核对价格

2.     截图保存

6.3 配置外网访问

1.     测试vpc之间的ecs互通,互通说明cen组网没问题

2.     路由发布,解决cen上外网问题

a)     vpc-hz-dmz的路由表里,自定义路由条目-发布0.0.0.0/0目标网段。发布后cen转发路由表可学习到这条路由。

b)     生产和测试vpc里面的路由表-自定义路由-添加路由条目0.0.0.0/0,下一条指向cen转发路由器

3.     ecs-hz-main-pro-J-001测试ping aliyun.com,截图保存

4.     ecs-hz-main-test-K-win测试浏览器访问aliyun.com,截图保存

5.     配置短信服务器ecs访问外网vpc-hz-web下创建一张新的路由表route-hz-web-sms,专门用于ecs-sms上网,进入路由表,先绑定vsw-sms交换机,然后在自定义路由条目-添加条目GW 0.0.0.0/0,下一跳指向cen转发路由器。

6.     进入ecs-hz-web-sms-J,测试测试ping aliyun.com,截图保存

6.4 配置RDS

1.     白名单:关联essack中的ecsrds白名单,通过安全组方式添加,添加essack的安全组,其中ack自动建立的安全组名称叫alicloud-cd-auto开头,这样安全组下的所有ECS实例都可以访问RDS实例。

7 ACK安装wordpress

7.1 一、配置ACR (阿里云容器镜像服务)

1.创建ACR个人版

2.创建ACR的命名空间zhouchong0718和公开仓库wordpress

3.设置ACR的登陆密码:在“访问凭证“处

image.png

4.ack实例ack-hz-web-工作负债-无状态-使用镜像创建下,创建deployment。如果搜索不到wordpress镜像,则跳转到7.27.3节,如果能搜索到,跳转7.4节。

image.png

7.2 二、安装Docker环境

1. 登录一台开发机(自己买一台,不要用架构内的机器)

2. 通过mirrors.aliyun.com找到docker安装文档,并在开发机安装

3. 在开发机上,通过ACR中的镜像加速配置docker

image.png

4. docker info 验证docker 安装成功

 

7.3 三、上传wordpress镜像

1.在开发机执行docker pull wordpress

2. ACR的仓库中找到上传镜像的命令

$ docker login --username=jika****@gmail.com registry.cn-hangzhou.aliyuncs.com

$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/jikai731/wordpress:[镜像版本号]

$ docker push registry.cn-hangzhou.aliyuncs.com/jikai731/wordpress:[镜像版本号]

3. 注意,docker login使用阿里云账户名作为user,镜像版本号可以用年月日命名

image.png

7.4 四、启动工作负担

1.  NAS控制台为NAS创建挂载点。

image.png

image.png

2.  ACK控制台的存储声明中,创建PersistentVolumeClaim

image.png

3.  Deployment配置中的数据卷添加上一步配置的云存储声明PersistentVolumeClaim

4.  将本地存储声明中的路径复制到云存储声明中。并删除本地存储声明

image.png

5、创建负载均衡类的服务Service,命名为wordpress-svc(有了服务后,就能访问到wordpress应用,就可以不用Ingress,除非有更高阶的需求)

image.png

7.5 五、配置wordpress中的数据库

0. 终端登录第一个容器组(Pod),安装viRUN apt-get update && apt-get install -y vim

方法2

1. NAS控制台中为开发机所在的VPC添加挂载点

2. NAS控制台中将NAS挂载到开发机ECS

image.png

3. 在开发机中使用vi打开wp-config.php

1. 打开wp-config.php,然后到RDS控制台中,获得数据库连接url

2. 修改如下配置

define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );

改为

define( 'DB_NAME', 'wordpress' );

 

define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'example username') );

改为

define( 'DB_USER', 数据库用户名 );

 

define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'example password') );

改为

define( 'DB_PASSWORD', 数据库密码 );

 

define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );

改为

define( 'DB_HOST', 数据库url );

 

define( 'DB_CHARSET', getenv_docker('WORDPRESS_DB_CHARSET', 'utf8') );

改为

define( 'DB_CHARSET', 'utf8mb4' );

 

7.6 六、验证和配置wordpress

1. ACK控制台创建公网负载均衡类的Service

2. 访问这个负载均衡的外网地址。

3. 页面跳转到http://公网IP/wp-admin/install.php即为数据库配置成功

4. 选择语言,输入初始化标题、用户名aliyun、密码。

5. 使用用户密码登录成功,即为配置成功

image.png

 

7.7 七、上传一张图片,截图保存

1. 输入http://公网IP/地址

2. 点击上方的发布按钮,选择发布页面

3. 在特色图片中输入一种图片

4. 添加一个标题,然后点击发布

5. 记录下发布的页面url

 

7.8 八、在ACK上安装ECI支持

1. 组件管理中安装ack-virtual-node组件

2. 应用市场中安装ack-kubernetes-elastic-workload应用

3. 通过yaml文件安装ElasticWorkload对象,默认pod数为10-20(我的配置2-10-50

apiVersion: autoscaling.alibabacloud.com/v1beta1 #

kind: ElasticWorkload

metadata:

name: elasticworkload-wordpress

spec:

sourceTarget: # sourceTarget部分主要定义原始负载的类型、副本数目可变化的范围。

  name: wordpress

  kind: Deployment

  apiVersion: apps/v1

  min: 2

  max: 10

replicas: 50

elasticUnit: # elasticUnit部分是一个数组,定义弹性单元的调度策略,如果有多个弹性单元,则按照模板的顺序定义。

- name: virtual-kubelet

 labels:

  alibabacloud.com/eci: "true"

image.png  

上面这段YAML配置文件replicas超过了max规定的值,正常情况不应该大于max值,在这里是因为后续要和HPA配合,实现的效果是DeploymentPod数初始化直接达到上限10(运行在ECS上),剩余还差40PodECI弹出,一共50Pod。初始化后,根据系统负载压力,动态地在2-100之间伸缩。当系统需要小于10个副本时,会分配到wordpressDeployment上,当需要超过10个副本时,会弹到wordpress-unit-virtual-kubeletDeployment上(运行在ECI资源上)。当需要缩容时,会优先将弹性单元的副本进行缩容。业务低峰时,最低保留2个副本。

 

概念:

wordpress Deployment:原始负载应用

wordpress-unit-virtual-kubelet Deployment:弹性单元应用

4. 上步创建ElasticWorkload弹性单元应用后,绑定HPA:通过yaml文件安装HorizontalPodAutoscaler对象(在无状态-wordpress-容器伸缩下添加HPA),弹性最大值设为200左右,cpu设置为20%(注意:HorizontalPodAutoscaler释放pod对象有延迟)

apiVersion: autoscaling/v2

kind: HorizontalPodAutoscaler

metadata:

name: elastic-workload-hpa

namespace: default

spec:

scaleTargetRef:

  apiVersion: autoscaling.alibabacloud.com/v1beta1

  kind: ElasticWorkload

  name: elasticworkload-wordpress

minReplicas: 2

maxReplicas: 200

metrics:

- type: Resource

  resource:

     name: cpu

     target:

       type: Utilization

       averageUtilization: 20

image.png

上面这段YAML配置文件是用来创建一个Kubernetes的水平Pod自动伸缩器(HorizontalPodAutoscalerHPA),并与阿里云ACK服务中的ElasticWorkload资源进行集成,以实现基于CPU利用率的弹性伸缩。它监视名为"elasticworkload-wordpress"ElasticWorkload资源,并根据PodCPU平均使用率进行自动扩缩容。当CPU平均使用率达到或超过20%时,HPA将尝试增加副本数,但始终会在2200个副本之间进行调整。

5.  创建Ingress:网络-路由-创建。。。网关试着选NginxALB,服务名称选wordpress-svc

image.png image.png

6. 验证应用弹性到ECI上。

7. 看考题是否考弹性缩容:查看平均cpu的命令是kubectl describe hpa elastic-workload-hpa

image.png

https://gts-workorder-prod.oss-cn-zhangjiakou.aliyuncs.com/20240304/1da3ac96-4fd5-4a04-bc93-491a92eff752/image.png?Expires=1710320483&OSSAccessKeyId=LTAI5tCjB7N1HuRUyQurncot&Signature=NZxsI98SeqzNHARBRExy9R597Hw%3D

7.9 九、压测

1. 进入PTS控制台,输入页面url

2. 点击压测,输入测试时间和每秒请求数,点击启动压测

image.png

3. 观察成功率高低高的曲线并截图

8 附件

8.1 架构图

image.png

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5天前
|
SpringCloudAlibaba Dubbo 应用服务中间件
【微服务】微服务初步认识 - 微服务技术如何学习 · 认识微服务架构
【微服务】微服务初步认识 - 微服务技术如何学习 · 认识微服务架构
12 0
|
5天前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
156 6
|
3天前
|
应用服务中间件 网络安全 nginx
阿里云Ddos高防配置事故分享
阿里云Ddos高防配置事故分享
|
5天前
|
Kubernetes API 调度
Kubernetes学习-核心概念篇(二) 集群架构与组件
Kubernetes学习-核心概念篇(二) 集群架构与组件
|
5天前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
76 0
|
5天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
5天前
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考,2核16G、4核32G、8核64G配置收费标准
阿里云服务器2核16G、4核32G、8核64G配置最新租用价格更新,2024年阿里云产品再一次降价,降价之后2核16G配置按量收费最低收费标准为0.596元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.085元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。云服务器实例规格的地域和实例规格不同,收费标准不一样,下面是2024年阿里云服务器2核16G、4核32G、8核64G配置的最新租用收费标准。
阿里云服务器租用价格参考,2核16G、4核32G、8核64G配置收费标准
|
5天前
|
存储 弹性计算 固态存储
阿里云服务器配置选择指南,2024年全解析
阿里云服务器配置选择涉及CPU、内存、带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型实例,如2核2G3M配置,适合网站和轻量应用。企业用户则应选择企业级独享型ECS,如计算型c7、通用型g7,至少2核4G起,带宽建议5M,系统盘考虑SSD云盘或ESSD云盘以保证性能。阿里云提供了多种实例类型和配置,用户需根据实际需求进行选择。
|
5天前
|
存储 弹性计算 固态存储
阿里云服务器配置怎么选择合适?收藏级教程大家参考下
阿里云服务器配置选择涉及CPU、内存、带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型实例,如2核2G3M配置,适合低流量网站。企业用户应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。具体配置需根据实际应用需求来定。
|
5天前
|
存储 弹性计算 运维
深度解读:阿里云服务器ECS经济型e实例配置整理和性能参数表
阿里云推出经济型ECS e系列服务器,适用于个人开发者、学生和小微企业。该系列采用Intel Xeon Platinum处理器,支持多种CPU内存配比,性价比高,2核2G3M配置只需99元/年,新老用户不限量购买且续费不涨价。提供相同可用性SLA和安全标准,具备ESSD Entry云盘等企业级特性。适合中小型网站、开发测试和轻量级应用