私有网络接入最佳实践
企业应用上云后,常见的网络诉求是:部署在 CloudBase 上的服务(云函数、云托管)需要访问企业自有 VPC 内的资源(内网数据库、内部服务、专线打通的 IDC),且往往是多个服务访问同一套内网。本文介绍私有网络接入的推荐做法,重点回答一个高频问题:网络配置能不 能「公共部分配置一次」,而不是每个服务手动配一遍?
核心概念:三层模型
私有网络接入实际分三层,各层的配置粒度不同——把它们区分开,就知道哪些只需要做一次:
| 层 | 做什么 | 配置粒度 | 需要做几次 |
|---|---|---|---|
| 网络打通 | 让 CloudBase 侧 VPC 与你的业务 VPC 互通(对等连接 / 云联网) | VPC 级 | 一次。后续新增 VPC 只是追加关联 |
| 云托管服务绑定 | 在服务设置中开启「私有网络」并选择 VPC/子网 | 服务级 | 每个服务配置一次,创建时或创建后均可设置 |
| 云函数绑定 | 每个函数的 VpcConfig 指定 vpcId/subnetId | 函数级 | 平台层逐函数,但可用配置文件声明一次、批量下发(见下文) |
第一步:规划 CIDR(最容易返工的环节)
打通前先确认 CloudBase 侧 VPC 与业务 VPC 的网段不重叠。网段冲突是私有网络集成失败的最常见原因,且事后调整代价不小——修改已上线服务的网络配置会触发服务更新,重新规划网段则意味着整条打通链路返工。
参考规划:CloudBase 侧 192.168.0.0/16,业务侧 172.16.0.0/16。
查看账号下现有 VPC 与子网:
tcb api vpc DescribeVpcs --api-version 2017-03-12 --body '{"Limit":"20"}' --json
tcb api vpc DescribeSubnets --api-version 2017-03-12 --body '{"Limit":"20"}' --json
第二步:打通网络(一次性工作)
| 方式 | 适用条件 |
|---|---|
| 对等连接(Peering) | 两端 VPC 网段完全不重叠 |
| 云联网(CCN) | 可跨地域(官方方案覆盖同账号场景),或主网段有重叠但子网不重叠 |
以云联网为例的打通流程:
- 创建 CCN 实例:在云联网控制台新建实例。默认提供的免费带宽仅够连通性测试,生产环境需按地域对购买带宽
- 关联 VPC:将 CloudBase 侧 VPC 与业务 VPC 分别关联到该 CCN 实例,然后在实例详情的路由表中确认路由均为「启用」状态
- 放通安全组:业务 VPC 的安全组放通 CloudBase 侧 VPC 网段的对应端口
之后新增业务 VPC,只需重复第 2 步追加关联,路由自动维护——这一层天然就是「配置一次」。完整的跨地域打通步骤参考基于云联网(CCN)实现云开发跨地域 VPC 内网互通。
第三步:绑定服务,按形态分两条路
云托管:服务设置中开启私有网络
云托管服务的私有网络按服务配置,创建服务时可以指定,创建后也可以调整:进入服务详情页,打开「服务设置」,在网络配置中开启或编辑「私有网络」,选择 VPC 与子网后保存。注意:修改私有网络配置会触发服务更新,建议在业务低峰期操作,且不要频繁切换。详见云托管 VPC 配置说明。