云上集群搭建实战

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
性能测试 PTS,5000VUM额度
简介: 云上集群搭建实战:包含集群的搭建、路由配置、ACK实例伸缩、ECI弹性伸缩等

截图工具: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)
image.png

二、云企业网-CEN
1、cen:cen-hz
2、转发路由器
image.png

三、可用区-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)
image.png

四、可用区-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)
image.png

五、可用区-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
image.png

11、配置监听端口80
image.png

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
image.png

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)
image.png

六、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上。

十八、总体架构图
导出架构图.jpg

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
Kubernetes 应用服务中间件 nginx
搭建高可用k8s
搭建高可用k8s
91 6
|
Kubernetes Linux 开发者
聊聊 K8S:K8S集群搭建实战
聊聊 K8S:K8S集群搭建实战
625 2
|
7月前
|
存储 Kubernetes Docker
使用sealos快速搭建K8s集群环境
使用sealos快速搭建K8s集群环境
340 2
|
存储 Kubernetes 网络安全
【k8s 系列】k8s 学习五,k8s 集群部署尝试
【k8s 系列】k8s 学习五,k8s 集群部署尝试
170 0
|
机器学习/深度学习 分布式计算 Hadoop
搭建高可用Hadoop集群
搭建高可用Hadoop集群
|
存储 Kubernetes 网络协议
k8s集群环境的搭建(二)
k8s集群环境的搭建
295 0
k8s集群环境的搭建(二)
|
Kubernetes 安全 网络协议
k8s集群环境的搭建(一)
k8s集群环境的搭建
554 0
k8s集群环境的搭建(一)
|
canal Kubernetes 应用服务中间件
k8s集群环境的搭建(三)
k8s集群环境的搭建
561 0
k8s集群环境的搭建(三)
|
Kubernetes 开发者 容器
K8s 集群部署 | 学习笔记
快速学习 K8s 集群部署
259 0
|
Kubernetes 开发者 容器
K8s 集群部署-学习总结 | 学习笔记
快速学习 K8s 集群部署-学习总结
154 0
K8s 集群部署-学习总结 | 学习笔记