前言

网络规划是一个 IT 新公司最首先要解决的基础设施问题,下面介绍某信息公司网络规划的真实案例:公司总体情况在 3 个城市有办公区,应用部署的服务器资源用的是华为云且服务都是在 k8s 集群内的,办公区的网络跟容器网络也是打通了的。所以大方向上需要有自己本地的办公网段+华为云网段 2类。

本地网络

现在办公区大部分都用笔记本+无线网线方案比较方便,有线的还需要施工布线、交换机设备的略显麻烦。
笔记本连接 wifi,自动分配 IP 接入企业办公网络采用的是 AP+AC 的组网方案。

AC:无线控制器。负责统一控制整个无线网络,进行网络功能设置,IP 的分配(DHCP)就是里面设置的。
AP:无线接入器。只负责网络连接,没有其他的多余功能,硬件设置主要围绕着无线射频进行,负载根据连接的终端数决定,因为使用多AP的方案,所以单个AP上的覆盖不会很高,依靠数量来解决覆盖不足,负载过高的问题。即使单个AP出现故障,这个AP上的终端,也可以移动到其他AP上,对终端的影响比较小。

AC+AP 解决了本地办公网的网络连接+IP 获取,我们有 3 个城市 + 华为云网络,所以还需要在出口部署一个防火墙,可以在防火墙里面配置相对应的网络策来实现3个城市内网相通以及和华为云网络的连通性问题。

办公区网络拓扑图

设备型号:

  • 北京用的是锐捷的:反馈不好用
  • 天津、厦门用的是华为的:挺稳定的

vpc 网络(华为云侧网络)

虚拟私有云(Virtual Private Cloud,以下简称VPC),为云服务器、云容器、云数据库等资源构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云上资源的安全性,简化用户的网络部署。
可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性。用户可以通过VPC方便地管理、配置内部网络,进行安全、快捷的网络变更。同时,用户可以自定义安全组内与组间弹性云服务器的访问规则,加强弹性云服务器的安全保护。

我们在华为云也就是 vpc 网络里面有:虚拟机(部署一些有状态的中间件、大数据服务等)、容器服务(k8s)、华为云提供的数据看、ES、Kafaka 等服务。

上面说到了,k8s 集群里面的容器网络跟我们的办工网打通了,所以每个容器IP 在这个网络拓扑是扁平化的,不允许在任何地方出现重叠。

华为云上面的资源就上面那些,除此之外我们有 4 个研发环境,也要纳入网络规划考虑范围:

  • 开发环境
  • 测试环境
  • 预生产环境
  • 生产环境

开发、测试网络相通,预生产、生产网络相通

如何打通容器网络

我们的办公区、vpc 跟 k8s 集群的容器网络 是可直连的,正常理解的 k8s 但凡要跟集群外通信不得经过 ingress 吗?其实这就是采用了云厂商的魅力了,具体如何实现我们来捋一捋。

容器的网络模型可归纳为下面 3 种:

  1. 覆盖网络:在 IP 协议包上面额外封装一层协议,如 Flannel
  2. 基于 BGP 的无覆盖网络 / 基于 IPVlan 的 VPC 网络
  3. 云原生 2.0 网络

华为云要让容器网络扁平化采用的就是上面的 2、3 方案。

在方案 2(VPC网络)

vpc-容器

  • 节点内Pod间通信:ipvlan子接口分配给节点上的Pod,同节点的Pod间通信直接通过ipvlan直接转发。
  • 跨节点Pod间通信:所有跨节点Pod间的通信通过默认路由到默认网关,借助VPC的路由转发能力,转发到对端节点上。

优点

  • 由于没有隧道封装,网络问题易排查、性能较高
  • 支持VPC内的外部网络与容器IP直通

缺点

  • 节点数量受限于虚拟私有云VPC的路由配额【只能达到200个节点的水平】
  • 每个节点将会被分配固定大小的IP地址段,存在一定的容器网段IP地址浪费【在网络规划、集群创建的过程要十分谨慎,无法修改】
  • 无法直接利用VPC提供的负载均衡、安全组等能力

云原生 2.0 网络

云原生网络2.0是自研的新一代容器网络模型,深度整合了虚拟私有云VPC的弹性网卡(Elastic Network Interface,简称ENI)和辅助弹性网卡(Sub Network Interface,简称Sub-ENI)的能力,直接从VPC网段内分配容器IP地址,支持ELB直通容器,绑定安全组,绑定弹性公网IP,享有高性能。
简单说就是本身是虚拟网卡了,还可以再产生子网卡,硬生生的把本来不同层级的网络摊平了。宿主机跟宿主机上面的容器都是同一层级的网络了。

云原生 2.0 网络

说明:

  • 裸金属节点上Pod使用ENI网卡;ECS节点上Pod使用Sub-ENI网卡,Sub-ENI网卡通过VLAN子接口挂载在ENI上。
  • 节点内Pod间通信:直接通过VPC的弹性网卡/弹性辅助网卡进行流量转发。
  • 跨节点Pod间通信:直接通过VPC的弹性网卡/弹性辅助网卡进行流量转发。

优点

  • 容器网络直接使用的VPC,网络问题易排查、性能最高。
  • 支持VPC内的外部网络与容器IP直通。
  • 可直接利用VPC提供的负载均衡、安全组、弹性公网IP等能力。【集群最高支持 2000个ECS节点,10万个容器。】

缺点

  • 由于容器网络直接使用的VPC,消耗VPC的地址空间,创建集群前需要合理规划好容器网段。

方案2、3 在负载均衡上面的区别

方案 2 跟 3 的另一个比较大的区别在负载均衡中

方案2-LB

方案3-LB

从上面 2 张图可以看出,从集群外的网络访问集群内时,方案 2 比 方案 3 多了一层 service,方案 3 的弹性负载均衡直达容器所以性能更高。
方案 2 对应的是华为云的普通 cce 集群,方案3对应的是华为云的 turbo 集群。

网络拓扑

上面的详细列举了我们的整体网络情况,下面展示下整个全局网络的拓扑设计。

办公区网络

  • 10.128.0.0/9

    • 10.128.0.0/16 北京办公区
    • 10.129.0.0/16 天津办公区
    • 10.130.0.0/16 厦门办公区

工作区的大网段总共有 2^(32-9)= 8,388,608 的主机位,扣掉每个网段里面全 0 的广播地址,全 1 的默认网关,可分配的主机地址就是 8,388,608 -2 =8,388,606 个。

具体每个办公区 2^(32-16)-2 = 65534,相比总网段,每个城市的区域网络显得小很多,但是明显也够用了,剩下的为以后预留用。

华为云网络

  • 10.0.0.0/9

    • 公共网络(代码仓库这种需要用到)
    • ECS 网络
    • 容器网络

      • 开发、测试网络(公用)
      • 预生产网络
      • 生产网络

此部分考虑到服务安全性就不太详细列举了(真实情况是太多懒得写),上面的每个网段都是一个 vpc,相同区域的不同 vpc 如果要通信可以用对等连接来实现,不同区域的不同 vpc 如果要通信要用云连接来实现。

VPN

回家后如果需要处理公司问题,需要通过 vpn 链接到公司内网。这边是公司自己用 openvpn 搭了一个 VPN 服务。

总揽

image.png

点赞(6) 打赏

Comment list 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部