Cisco Nexus L2 Switch 进行 vPC 和 L3 改造以支持 K8S 部署
作者简介
冯亚伟,去哪儿网 NETOPS,2014 年 7 月加入去哪儿网,拥有丰富的网络运维经验,现负责公司 IDC 和骨干传输网络的运维工作。
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 才会生效。
THE
END