截图工具:shift + win + s
一、可用区-DMZ
1、vpc:172.20.0.0/16
2、nat:nat-hz-dmz
3、vsw:vswitch-hz-dmz-nat(172.20.0.0/24)
4、eip:eip-hz-dmz-prod
5、eip:eip-hz-dmz-test
6、流量包
7、堡垒机:跳过部署
8、vsw:vswitch-hz-dmz-cen-J(172.20.254.0/25)
9、vsw:vswitch-hz-dmz-cen-K(172.20.254.128/25)
二、云企业网-CEN
1、cen:cen-hz
2、转发路由器
三、可用区-MAIN
1、vpc:vpc-hz-main-prod(172.16.0.0/16)
2、vsw:vswitch-hz-main-prod-J(172.16.0.0/24)
3、vsw:vswitch-hz-main-prod-K(172.16.1.0/24)
4、ecs:ecs-hz-main-prod-[1,3]
5、ecs:ecs-hz-main-prod-[7,3]
6、安全组:sg-hz-main-prod
7、redis:kvstore-hz-main-prod(配置白名单)
yum install -y redis
redis-cli -h r-bp13.redis.rds.aliyuncs.com
auth password
8、snat:snat-hz-main-prod-J
9、snat:snat-hz-main-prod-K
10、vsw:vswitch-hz-main-prod-cen-J(172.16.254.0/25)
11、vsw:vswitch-hz-main-prod-cen-K(172.16.254.128/25)
四、可用区-TEST
1、vpc:vpc-hz-main-test(172.17.0.0/16)
2、vsw:vswitch-hz-main-test-J(172.17.0.0/24)
3、ecs:ecs-hz-main-test-centos
4、ecs:ecs-hz-main-test-win
5、安全组:sg-hz-main-test
6、snat:snat-hz-main-test
7、vsw:vswitch-hz-main-test-cen-J(172.17.254.0/25)
8、vsw:vswitch-hz-main-test-cen-K(172.17.254.128/25)
五、可用区-WEB
0、vpc:vpc-hz-web(172.18.0.0/16)
1、pts:pts-hz-web
2、eip:eip-hz-web-clb
3、vsw:vswitch-hz-web-clb-J(172.18.0.0/24)
4、clb:clb-hz-web
5、vsw:vswitch-hz-web-ess-J(172.18.1.0/24)
6、ecs:ecs-hz-web-ess-J
7、vsw:vswitch-hz-web-ess-K(172.18.2.0/24)
8、ecs:ecs-hz-web-ess-K
9、安全组:sg-hz-web-ess
10、ess:ess-hz-web
11、配置监听端口80
12、vsw:vswitch-hz-web-rds-J(172.18.3.0/24)
13、rds:rds-hz-web(配置账号、数据库)
14、vsw:vswitch-hz-web-sms-J(172.18.4.0/24)
15、ecs:ecs-hz-web-sms-J
16、安全组:sg-hz-web-sms
17、snat:snat-hz-web-sms
18、ack托管版:ack-hz-web,Service CIDR:10.0.0.0/16
19、vsw:vswitch-hz-web-ack-J(172.18.5.0/24)
20、vsw:vswitch-hz-web-ack-K(172.18.6.0/24)
21、极速nas:nas-hz-web-ack
22、vsw:vswitch-hz-web-cen-J(172.18.254.0/25)
23、vsw:vswitch-hz-web-cen-K(172.18.254.128/25)
六、DMZ路由配置
1、找到DMZ-VPC路由表,将0.0.0.0/0默认路由条目发布出去,使其他实例学习到该路由。
2、找到生产系统、测试系统路由表,添加0.0.0.0/0默认路由条目,下一跳指向转发路由器。
3、在转发路由器上面再添加一条默认路由到DMZ的NAT网关(预备操作)
七、SMS路由配置
1、找到WEB-VPC路由表,选择资源管理,在路由表点击“添加”,输入名称“route-web-sms”。
2、进入“route-web-sms”路由表,切到“已绑定交换机”tab页,绑定sms交换机。
3、切到“路由条目列表”,自定义路由条目,点击“添加路由条目”。
4、添加0.0.0.0/0默认路由条目,下一跳指向转发路由器。
八、RDS白名单和安全组配置
1、进入RDS“白名单与安全组”,选择“安全组”tab页。
2、点击“添加安全组”,选中ack的“alicloud-cs-auto-created”和“sg-hz-web-ess”。
九、容器镜像服务
1、创建ACR个人版
2、创建命名空间“xiaoqiang329”。
3、创建镜像仓库“wordpress”,选择本地仓库,确定。
4、访问凭证,点击“设置固定密码”,输入密码“qwe@123QWE”。
十、docker安装
1、输入mirrors.aliyun.com,找到dockerCE安装步骤。
2、根据centos7步骤输入进行安装,完成后输入docker info校验是否成功。
3、输入docker search wordpress,查询wordpress版本。
4、输入docker pull wordpress,拉取wordpress镜像。可执行容器镜像加速器进行加速。
5、输入docker images,查看本地镜像。
6、根据镜像服务仓库“wordpress”镜像上传步骤,上传本地镜像。
十一、NAS添加挂载点
1、进入文件存储,选择文件系统列表,点击“添加挂载点”。
2、输入对应WEB-VPC,输入任意一个ACK交换机,输入默认权限组,确定。
十二、ACK存储声明
1、进入ack-hz-web,选择“存储”-“存储声明”,点击“创建”。
2、勾选“nas”类型,分配模式选择“创建存储卷”,选择上面添加的挂载点,创建。
十三、创建wordpress实例
1、进入ack-hz-web,先择“工作负载”-“无状态”,点击“使用镜像创建”。
2、根据步骤,选择上面上传的镜像及标签,优先使用本地镜像。
3、数据卷中增加云存储声明,挂载源选择上面创建的nas存储声明。复制本地存储的容器路径/var/www/html,删除本地存储声明。
4、service服务、ingress路由和伸缩暂时不配置,点击创建,结束。
十四、配置RDS访问
1、因wordpress实例pod没有vi编辑器,需要将数据卷中的nas存储声明继续挂载到开发机。
2、进入文件存储,选择文件系统列表,点击“添加挂载点”。选择开发机所在的VPC、交换机。
3、点击挂载ECS下面的“挂载”,选中上面挂载点下的开发机,挂在路径“/wordpress”,完成。
4、进入开发机,查看“/wordpress”下的文件,即wordpress实例挂载过来的文件。
5、vi wp-config.php编辑数据库连接。
6、修改如下配置
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 数据库用户名 );
define( 'DB_PASSWORD', 数据库密码 );
define( 'DB_HOST', 数据库url无需端口 );
define( 'DB_CHARSET', 'utf8mb4' );
十五、访问wordpress实例
1、在ACK控制台创建公网负载均衡类的Service,绑定服务:app:wordpress。
2、访问这个负载均衡的外网地址。
3、页面跳转到http://公网IP/wp-admin/install.php即为数据库配置成功。
4、选择语言,输入初始化标题、用户名、密码。
5、使用用户密码登录成功,即为配置成功。
6、上传一张图片,记录下发布的页面url,用于后续压测。
十六、HPA弹性伸缩
1、进入wordpress实例列表,选中容器伸缩。
2、点击“创建”,添加CPU使用量20%,最小容器数量2,最大容器数量10。
3、进入PTS控制台,输入页面url。
4、点击压测,输入测试时间6分钟和每秒请求数1000,点击启动压测。
5、观察成功率高低高的曲线并截图。
6、查看wordpress实例,是否弹性扩容到10个实例。
7、停止压测。
预备操作:HPA配置成最小50,最大100,手动伸缩到50,看是否有virtual-kubelet的节点生成。
预备压测:
场景配置:URL(http://101.37.70.21:80/)
施压配置:最大并发1000,递增百分比18,单量级1分钟,总时长6分钟,起始百分比20
十七、在ACK上安装ECI支持
0、在default命名空间里添加标签alibabacloud.com/eci=true
1、在“运维管理”-“组件管理”中安装ack-virtual-node组件。
2、在“市场”-“应用市场”中安装ack-kubernetes-elastic-workload应用。
3、“使用弹性负载表达Deployment类型应用”。使用yaml创建资源安装ElasticWorkload对象,默认pod数为10-20。
apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: ElasticWorkload
metadata:
name: wordpress-elasticworkload
namespace: wordpress
spec:
sourceTarget:
name: wordpress-ack-wordpress-sample
kind: Deployment
apiVersion: apps/v1
min: 2
max: 10
replicas: 100
elasticUnit:
- name: virtual-kubelet
labels:
alibabacloud.com/eci: "true"
4、通过yaml文件安装HorizontalPodAutoscaler对象,弹性最大值设为200左右,cpu设置为20%。注意apiVersion: autoscaling/v2,没有beta2,否则创建不成功。
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: wordpress-workload-demo
namespace: wordpress
spec:
scaleTargetRef:
apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: ElasticWorkload
name: wordpress-elasticworkload
minReplicas: 100
maxReplicas: 200
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 20
5、验证应用弹性到ECI上。
十八、总体架构图