云上集群搭建实战

简介: 云上集群搭建实战:包含集群的搭建、路由配置、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

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
12月前
|
机器学习/深度学习 自然语言处理 运维
“日志别再只会翻了,教它自己说话”——聊聊用 NLP 玩转日志分析
“日志别再只会翻了,教它自己说话”——聊聊用 NLP 玩转日志分析
784 0
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
879 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
人工智能 Rust Java
Java中的算数、关系、逻辑、条件、赋值 五大运算符详解
本文介绍了Java中的运算符及其优先级,包括算数运算符(如+、-、*、/、%、++、--)、关系运算符(如<、>、==、!=)、逻辑运算符(如&&、||、!)、条件运算符(三目运算符)和赋值运算符(如=、+=、-=等)。详细解释了每种运算符的功能与用法,例如自增自减运算符的特点、逻辑运算符的短路法运算以及位运算符的操作规则。最后还提供了运算符优先级表格,帮助开发者理解复杂表达式的计算顺序。文中提醒,在实际开发中,建议使用括号明确运算顺序以提高代码可读性。
594 0
|
敏捷开发 开发框架 JavaScript
很牛!Github 上 10 个值得学习的 Springboot 开源项目
很牛!Github 上 10 个值得学习的 Springboot 开源项目
13920 0
|
Kubernetes 负载均衡 应用服务中间件
部署Kubernetes(k8s)多主的高可用集群
在CentOS7上安装Kubernetes多主节点的集群,并且安装calico网络插件和metallb。使用keepalived和haproxy进行负载均衡。最后部署应用
6111 0
|
存储 数据处理 数据中心
1U和2U服务器应如何正确选择?各有什么优缺点?
标准机架式服务器以U为高度单位,1U和2U服务器各有优缺点。1U服务器体积小、性价比高,但扩展性和散热性较差;2U服务器扩展性好、散热佳、稳定性强,但托管费用较高。不同高度的服务器适用于不同的业务场景,选择时需根据具体需求决定。未来数据中心将根据业务特性选择合适的服务器类型,而非统一采用2U服务器。
625 2
|
前端开发
吃豆人来袭:CSS打造经典游戏动画,让网页设计更有趣!
吃豆人来袭:CSS打造经典游戏动画,让网页设计更有趣!
|
机器学习/深度学习 算法 自动驾驶
【强化学习】常用算法之一 “PPO”
强化学习是一种通过智能体与环境的互动来学习最优行为策略的机器学习方法。相较于监督学习和无监督学习,强化学习的特点在于具有延迟奖赏和试错机制。在强化学习中,智能体通过选择动作来影响环境,并且从环境中获得奖励作为反馈。强化学习的目标是通过与环境的交互,使得智能体能够学会最优的行为策略。PPO算法属于策略优化(Policy Optimization)算法家族,是由OpenAI在2017年提出的。与其他策略优化算法相比,PPO算法具有较高的样本利用率和较好的收敛性能。
3594 1
【强化学习】常用算法之一 “PPO”
|
机器人 测试技术 持续交付
Python进行自动化测试测试框架的选择与应用
【6月更文挑战第9天】本文介绍了Python自动化测试的重要性及选择测试框架的考量因素,如功能丰富性、易用性、灵活性和集成性。文中列举了常用的Python测试框架,包括unittest、pytest、nose2和Robot Framework,并提供了使用pytest进行单元测试的示例代码。此外,还展示了如何使用Robot Framework进行验收测试和Web UI测试。选择合适的测试框架对提升测试效率和软件质量至关重要,团队应根据项目需求、社区支持、集成性和学习曲线等因素进行选择。通过不断学习和实践,可以优化自动化测试流程,确保软件的稳定性和可靠性。
|
SQL 存储 JavaScript
前端浏览器调试详解版
前端浏览器调试详解版
735 0