Cisco Nexus L2 Switch 进行 vPC 和 L3 改造以支持 K8S 部署

1,585 阅读7分钟

image.png

1、背景及改造方案介绍
1.1  Qunar K8S 网络简介

图片

K8S网络说明:

  • 接入交换机与 K8S NODE 运行 IBGP,K8S NODE 将 POD 网段的路由通过 BGP 通告给接入交换机;
  • 接入交换机与核心交换机之间运行 EBGP,RACK 将各自学到的 POD 网段的路由通过 BGP 通告给核心交换机;
  • 核心交换机上通过路由策略只给每台接入交换机通告缺省路由。
1.2  Cisco Nexus VPC 简介

VPC 是 Virtual Port-channel(虚拟端口聚合)的缩写,VPC 可以让两台交换机上接口形成聚合端口,在聚合端口的对端设备看来,这两台交换机是一台设备。

VPC具有以下好处:

  • 将两台交换机在 L2 接口层面虚拟化为一台,消除了 L2 互联的 STP 环路,提高了网络的稳定性;
  • VPC 与 HSRP 相结合,使参与 HSRP 的两台交换机都能对以 HSRP VIP 作为网关的数据包进行三层转发,增加了上行接口的出向带宽及带宽使用率;
  • 参与 VPC 的两台交换机在控制层面,L3 层面上仍然是独立的,可以更加方便的进行系统维护和路由操作。
1.3  为什么要进行 VPC 改造以实现二三层网络混合部署
  • 原有的 L2 接入交换机不能与 K8S NODE 服务器运行BGP;
  • VPC + HSRP 使参与 HSRP 的两台交换机都能对以 HSRP VIP 作为网关的数据包进行三层转发,增加了上行接口的出向带宽及带宽使用率;
  • 使 L2 接入接入网络逐步向 L3 接入网络过渡,L3 网络稳定性优于 L2 网络,过渡完成后使 IDC 网络更加稳定;
  • 改造完成后使现有机柜可以进行 K8S 服务器部署,减少新开机柜的数量,节省机房运营成本。
1.4  改造前后网络结构的变化

改造之前:

图片

  • 改造之前接入交换机1和接入交换机2作为两台独立的 L2接入交换机分别通过 L2 port-channel 上联到一组VPC 核心交换机上;
  • 接入交换机1和接入交换机2作为一组接入为 Server 提供双上联接入,Server 通过 bond 双上联到两台 L2接入交换机。
  • Server 的网关在核心交换机上。

改造之后:

图片

  • 两台独立的 L2 接入交换机改造为一组 VPC;\

  • 在两台接入与两台核心之间增加 L3 互联,建立 EBGP 邻居;

  •  K8S 服务器的网关在接入交换机上, K8S 服务器分别与两台接入交换机建立 IBGP 邻居。

1.5  改造的思路
  • 切走需要进行改造的交换机的流量;
  • 对没有流量的交换机进行 VPC 配置,然后重启交换机,利用VPC 的 auto-recovery 特性使 VPC 生效;
  • 将服务器流量切换到改造后的交换机上;
  • 然后对另一台交换机进行 VPC 配置,连接两台接入交换机之间的 VPC Peer-link 接口,VPC 正常建立;
  • 增加接入交换机与核心交换机之间的 L3 互联,并配置 BGP;
  • 在接入交换机上配置服务器的 vlan interface 以及与服务器之间的BGP配置。
2、具体的改造步骤
2.1  规划两台 L2 接入交换机的 VPC 主备角色

可以通过配置优先级控制 VPC 主备角色分配。

2.2  维护规划的 VPC 主交换机

切走交换机下联服务器的流量,然后在核心交换机上关闭其上联口。

图片

2.3  关闭主交换机上连接服务器的接口

此操作的目的是为了防止维护过程中服务器bond接口意外切回。

提前记录UP的接口信息,在交换机完成重启接口恢复之后进行比对,检查是否有接口没有恢复。

2.4  配置主交换机的 VPC

此时不需要连接 vpc peer-link线路,并且在配置 vpc peer-link 接口后使其保持 shutdown 状态。

图片

``**Rack1`

feature vpc

  

vpc domain XX

  ``peer-``switch

  ``role priority ``4096

  ``peer-keepalive destination x.x.x.x source y.y.y.y

  ``delay restore ``150

  ``auto-recovery

  ``ip arp synchronize

  

interface port-channel4002

  ``switchport

  ``switchport mode trunk

  ``spanning-tree port type network

  ``vpc peer-link

  

interface Ethernet1/``51

  ``switchport

  ``switchport mode trunk

  ``channel-group ``4002 mode active

  ``shutdown

  

interface Ethernet1/``52

  ``switchport

  ``switchport mode trunk

  ``channel-group ``4002 mode active

`  shutdown

2.5  保存配置,重启主交换机

图片

交换机重启之后,VPC 生效;

  • Delay-restroe SVI status 计时器开始倒计时,时间为 10s;

图片

  • Delay-restroe SVI status 倒计时结束后,Delay-restore status 计时器开始倒计时,时间为 150s;

图片

  • Delay-restore status 倒计时结束后,Auto-recovery status 计时器开始倒计时,时间为 240s;\

在经过三个计时器共 400s 后,VPC 进入 Primary 状态。

2.6  配置上联口 port-channel 的 VPC ID,打开核心交换机上的上联口(STP抖动一次)

图片

**Rack1`

conf t

interface port-channel1

  ``vpc ``1

  ``switchport trunk allowed vlan except xx

  

**core[``1``-``2``]

conf t

interface port-channel9

  ``switchport trunk allowed vlan except xx

#检查接口下的 trunk allowed vlan 配置

#打开接口:

**core[``1``-``2``]

conf t

interface Ethernet1/``9

  ``no shutdown

#检查Rack1的 port-channel和vpc ``1``状态,检查STP `

图片

  • 上联口 Port-channel1 VPC ID 1 状态正常
2.7  将服务器流量切回 VPC 主交换机

VPC 主交换机L2连接恢复正常后,打开连接服务器的接口,检查重启前后UP的接口是否一致,然后将服务器流量从备交换机切换到主交换机。

2.8  在核心交换机上关闭备交换机的上联口

图片

2.9  备交换机配置VPC

需要在备交换机上联口 port-channel 中配置与主交换机上联 port-channel 相同的 VPC ID ,防止 VPC 一致性检查不一致而影响主交换机上联口 port-channel 的状态。

图片

``**Rack2`

feature vpc

  

vpc domain XX

  ``peer-``switch

  ``peer-keepalive destination y.y.y.y source x.x.x.x

  ``delay restore ``150

  ``auto-recovery

  ``ip arp synchronize

  

interface port-channel4002

  ``switchport

  ``switchport mode trunk

  ``spanning-tree port type network

  ``vpc peer-link

  

interface Ethernet1/``51

  ``switchport

  ``switchport mode trunk

  ``channel-group ``4002 mode active

  ``no shutdown

  

interface Ethernet1/``52

  ``switchport

  ``switchport mode trunk

  ``channel-group ``4002 mode active

  ``no shutdown

  

interface port-channel1

  ``vpc ``1

`  switchport trunk allowed vlan except xx

图片

  • VPC 用管理口 IP 作为 keep-alive 地址,因为管理地址互通,所以 vPC keep-alive status 为 “peer is alive”:
  • 由于 peer-link 线路没有连接,所以 Peer status 为 “peer link is down”,vPC role 为 “none established”
2.10  连接 peer-link,然后打开接口(STP抖动一次)

图片

  • 打开 VPC peer-link 后主交换机 vpc role 为“primary”。

图片

  • 备交换机 vpc role 为 “secondary”。

图片

  • 备交换机在经过之前所述的计时器时间 400s 后,进入正常状态,Rack1 与 Rack2 之间的 VPC 正常建立
2.11  在核心交换机上将连接 Rack2 的接口加入到连接 Rack1 的 Port-channel 中

图片

  • Rack1&Rack2 与 core1&core2 通过 1 个 L2 Port-channel 进行互联。 **core[1-2``]`

conf t

interface Ethernet1/``35

  ``switchport trunk allowed vlan except xx

  ``channel-group ``9 mode active       # channel group ``9 是主交换机的上联口的channel group ID,这样修改以后主备交换机就上联到同一个VPC了 `

2.12  打开备交换机的上联口,VPC 改造完成

图片

2.13  增加接入交换机与核心交换机之间的 L3 互联及 EBGP 配置
2.14  增加接入交换机与 K8S 服务器的 IBGP 配置
3、总结与注意事项
  • 在改造时,多组接入交换机之间要避免 VPC Domain ID 冲突,要进行规划记录;

  • 在改造过程中 L2 网络会经历两次生成树抖动;

  • 在改造之前两台接入交换机上联到核心交换机的两个不同的 Port-channel,在改造之后两台接入交换机上联到核心交换机的同一个 Port-channel 中;

  • 第一台接入交换机在配置 VPC 以后,VPC 不会生效,需要利用 VPC auto-recovery 特性,重启交换机,VPC 才会生效。