最近更新时间:2026-07-24 11:19:57
本实践主要介绍如何使用金山云的KEC、VPC、KRDS、SLB、EIP、NAT 网关等产品,搭建跨可用区的高可用网络架构。
本实践中的网络架构采用经典三层设计,通过公网负载均衡统一接收互联网流量,后端云服务器跨可用区部署以实现机房级容灾,云数据库采用双机高可用版自动主备切换,NAT 网关为后端实例提供统一、安全的出网能力。、
网络拓扑结构如下:
私网 SLB 为内网专用负载均衡组件,无公网地址暴露。主要承接 Web 层到 App 业务层(主机)的内网流量分发,通过健康检查自动剔除故障节点,支撑业务层水平扩容与高可用,同时解耦前后端服务、简化扩缩容运维,在本架构中为可选组件,无独立 App 层时可省略。
层级 | 产品 | 作用 |
|---|---|---|
网络接入 | 公网 SLB | 统一入口,隐藏后端IP |
网络隔离 | VPC + 子网 | 私网子网(放KEC、KRDS) |
网络出口 | NAT 网关 | 后端KEC通过NAT访问公网,不暴露实例公网IP |
计算层 | KEC 云服务器 | 跨2个可用区部署,抗单机房故障;可横向扩展 |
数据层 | KRDS MySQL(双机高可用版) | 主从Active/Standby,自动故障切换,跨可用区高可用 |
资源 | CIDR | 地域 | 可用区 | 用途 |
|---|---|---|---|---|
VPC(dain_vpc) | 192.168.0.0/16 | 华北1(北京) | - | 整体网络空间 |
公网共享型SLB | - | - | 部署公网SLB | |
私网子网A(dn_subnet3) | 192.168.68.0/24 | A | 部署KEC、KRDS主库 | |
数据库/负载均衡终端子网(dn_subnetZH) | 192.168.69.0/24 | A | - | |
私网子网B(dtest_subnet) | 192.168.70.0/24 | B | 部署KEC、KRDS备库 | |
数据库终端子网(dn_subnetZH) | 192.168.69.0/24 | B | - |
已完成金山云账号注册并完成实名认证。
具备 VPC、KEC、KRDS、SLB、NAT 网关产品的创建权限(默认主账号拥有全部权限)。
登录网络控制台,在左侧导航选择 虚拟私有网络(VPC)。
进入 VPC 列表页,点击 新建VPC。
在弹出的提示窗口中,根据环境与网络规划,参考如下示例,配置各项参数。
配置项 | 示例及说明 |
|---|---|
名称 | dain_vpc |
IPv4网段 | 192.168.0.0/16 |
IPv6网段 | 勾选 |
子网1 | 对应网络规划中的私网子网A。
|
子网2 | 对应网络规划中的私网子网B。
|
子网3 | 对应网络规划中的数据库终端子网。
|
点击确定,完成虚拟网络VPC和子网的创建。
根据前文操作,创建华北1(北京)可用区 A 和可用区 B 的云服务器.
返回网络控制台,在左侧导航选择NAT网关 > NAT1.0。
在页面顶部,选择步骤一创建的 VPC,点击 新建NAT。
在新建NAT页面,IP地址数量选择1,虚拟私有网络为dain_vpc,其他参数自定义。
点击立即购买,完成NAT的创建。
点击新建的NAT,进入其详情页面,选择 SNAT页签,绑定前文创建的云服务器。
选择创建的主机所在的子网,并绑定创建的主机。
部署验证Nginx:通过 VNC 分别登录两台 KEC,执行以下命令:
# CentOS 系统
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# 创建区分页面,便于验证负载均衡轮询效果
echo "<h1>Server: $(hostname)</h1>" | sudo tee /usr/share/nginx/html/index.html
# 确认Nginx监听0.0.0.0:80
sudo netstat -tlnp | grep 80登录云数据库 MySQL控制台,点击 新建实例。
在实例创建页面,参考如下示例,配置各项参数。
地域:本示例为华北1(北京)。
实例类型:选择高可用版。
主可用区:本示例可用区 A。
备可用区:本示例可用区 B。
网络配置:选择步骤一创建的 VPC 和终端子网。
其他配置按个人需求选择。
点击立即购买,完成MySQL实例的创建。
返回网络控制台,在左侧导航选择负载均衡 > 共享型,点击新建。
在共享负载均衡创建页面,参考以下示例,配置各项参数。
地域:本示例为华北1(北京)。
虚拟私有网络:选择步骤一创建的 VPC。
网络类型:选择公网。
其他配置按个人需求选择。
点击立即购买,完成SLB的创建。
在左侧导航栏,选择共享型>服务器组。
在服务器组(共享型)列表页面,点击新建,参考以下示例完成参数配置。
在后端服务器列表中,两台 KEC 的健康状态应显示为健康(约等待几十秒健康检查生效)。
返回共享型实例列表页,点击新建的负载均衡名称/ID,进入其详情页面。
选择监听器页签,点击 新建,参考以下示例,配置各项参数。
点击确定,完成监听器的创建。
点击监听器名称/ID,进入详情页,选择服务器信息页签,等待端口健康状态。
同时也受VPC安全组影响,需要放开80端口。
在浏览器地址栏输入 SLB 的 EIP 地址(如 http://123.x.x.x)。
多次刷新页面,观察页面显示的 Server: xxx 是否变化。
预期结果:页面在两台主机之间轮询切换,证明负载均衡生效。
执行停止 Nginx 服务:
sudo systemctl stop nginx再次刷新浏览器页面。
预期结果:页面仍然正常显示,但只显示 daitest2 的主机名;SLB 自动将故障节点剔除。
执行命令恢复服务,约十几秒后 SLB 自动将其加回:
sudo systemctl start nginx通过 VNC 登录任意一台私网 KEC。
执行以下命令:
curl -I https://www.ksyun.com预期结果:返回 HTTP 200 响应头,证明 NAT 网关出网正常。
通过 VNC 登录任意一台 KEC。
安装 MySQL 客户端:
sudo yum install -y mysql连接 KRDS:
mysql -h <KRDS内网地址> -P 3306 -u admin -p输入密码后进入 MySQL 命令行,执行:
SHOW STATUS LIKE 'Threads_connected';预期结果:成功连接,证明 KEC 与 KRDS 内网互通正常。
方向 | 协议 | 端口 | 来源 | 说明 |
|---|---|---|---|---|
入站 | TCP | 22 | (本地网络+内网网段) | SSH管理 |
入站 | TCP | 80 | (本地网络+内网网段) | HTTP业务 |
入站 | TCP | 443 | (本地网络+内网网段) | HTTPS业务 |
出站 | ip | - | 0.0.0.0/0 | 默认允许 |
纯净模式
