a hierarchical sw load balancing solution for cloud deployment

12
x A Hierarchical SW Load Balancing Solution for Cloud Deployment Acknowledgement: Ray Kinsella, Steve Liang @Intel Pierre Pfister, Jerome Tollet @Cisco Ping Yu, Jeff Shaw @Intel Hongjun Ni Intel FD.io Sweetcomb PTL FD.io NSH_SFC PTL

Upload: others

Post on 11-May-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Hierarchical SW Load Balancing Solution for Cloud Deployment

x

A Hierarchical SW Load Balancing Solution for Cloud Deployment

Acknowledgement:Ray Kinsella, Steve Liang @IntelPierre Pfister, Jerome Tollet @CiscoPing Yu, Jeff Shaw @Intel

Hongjun NiIntelFD.io Sweetcomb PTLFD.io NSH_SFC PTL

Page 2: A Hierarchical SW Load Balancing Solution for Cloud Deployment

2

• Why Choosing FD.io

• Option 1: Three-Level Load Balancing Solution

• Router, Load Balancer and Service Proxy Implementation

• Option 2: Two-Level Load Balancing Solution

• Key Takeaway

Agenda

Page 3: A Hierarchical SW Load Balancing Solution for Cloud Deployment

3

Orchestration &Controller

Operating Systems

Honeycomb

Data-plane Management

CSIT

trex

Testing/SupportNSH_SFC PMA Tools

P4VPP

Sandbox

VPP

Packet Processing

Management Agent

Packet Processing

Network IO

Data Plane

OSV Packaging

deb_dpdk rpm_dpdk

Networking-VPP

DMM GoVPP

Ligato

trex

Analytics

Contiv-VPP Sweetcomb

Page 4: A Hierarchical SW Load Balancing Solution for Cloud Deployment

4

Option 1: Three-Level Load Balancing Solution

• Router, Load Balancer and Service Proxy could be implemented based on VPP-DPDK.

• Supports IPv4 and IPv6.

• They run as typical K8s networking.

Page 5: A Hierarchical SW Load Balancing Solution for Cloud Deployment

5

rtnetlink

fib

rtinject plugin

tap-0

eth0

tap-1

eth1

phys0 phys1

cross connect

Local,Broadcast, andMulticast traffic

listen

netlink

VPP

Layer 3 Forwarding

BIRD

Linux

add/del

sockets

• Creates a tap for each interface.

• Injects locally destined, broadcast and multicast traffic to host stack.

• BIRD receives and processes traffic using sockets on the taps.

• Uses Netlink to interact with Linux kernel stack.

• Rtinject plugin listens for Netlink address, link, neigh, and route messages.

• Mirror configuration onto VPP’s FIB.

• Supports IPv4,IPv6 and MPLS.

Option 1: Router on VPP-DPDK - Injecting Mode

Page 6: A Hierarchical SW Load Balancing Solution for Cloud Deployment

6

• Distributes traffic among K8s nodes

• Consistent Hashing ensures resilience to K8s node changes.

• Connection Tracking supports connection persistence.

• Supports L3 and L4 load balancing.

• Supports two encapsulation typeso GRE tunnelo IPIP tunnel

• Integrated with OpenStack as LBaaSand deployed at Yahoo Japan.

Load Balancer

eth

Load balancing

TunnelConnection

Tracking

K8s Node N

Node IP: b.b.b.bVPP-DPDK

K8s Node 1

Node IP: a.a.a.a

Option 1: Load Balancer on VPP-DPDK

Page 7: A Hierarchical SW Load Balancing Solution for Cloud Deployment

7

• Distributes traffic among Pods

• Supports two interface typeso vhost and virtio-usero memif

• Supports three service typeso ClusterIPo NodePorto External LoadBalancer

• DNAT translates Service IP to Pod IP. SNAT does the opposite.

K8s-node

Backend Pod 1

Pod IP: x.x.x.x

VPP-DPDK

eth

Backend Pod 2

Pod IP: y.y.y.y

virtio-user

vhost

virtio-user

vhost

Load balancing

DNAT

SNAT

memif

memif

memif

memif

Connection Tracking

Option 1: Service Proxy on VPP-DPDK

Page 8: A Hierarchical SW Load Balancing Solution for Cloud Deployment

8

• VPP Router enables internal load balancing feature.

• VPP Load Balancer distributes traffic and encapsulates packets via GRE tunnels. A specific flow will be sent to the same K8s node.

• On K8s node, it removes GRE tunnel and goes through Service Proxy and performs DNAT, and then distributes traffic to selected pods.

• Return traffic will also pass through Service Proxy performing SNAT.

• Pod IPs are not visible to VPP LB.

Option 1: Data Flow

Page 9: A Hierarchical SW Load Balancing Solution for Cloud Deployment

9

• Each LB and K8s node runs iBGP

• LBs and K8s nodes do full mesh.

• Pod IPs are visible to VPP LB and K8s nodes.

Option 2: Two-Level Load Balancing Solution

Page 10: A Hierarchical SW Load Balancing Solution for Cloud Deployment

10

• VPP Router enables internal load balancing feature.

• VPP Load Balancer selects pod as per Service IP and encapsulates packets through IPIP tunnels.

• On K8s node, vRouter just forwards IPIP traffic to selected Pod.

• On each Pod, it removes IPIP tunnel, manipulates packets, swaps source IP and destination IP, and then sends packets directly to clients (Direct Server Return).

Option 2: Data Flow

Page 11: A Hierarchical SW Load Balancing Solution for Cloud Deployment

11

• A User Space solution to enable high performance Cloud Networking.

• Provides Three-Level load balancing solution for typical K8s usage.

• VPP-DPDK can implement Router, Load Balancer and Service Proxy.

• Provides Two-Level load balancing solution for Direct Server Return.

11

Key Takeaway

Page 12: A Hierarchical SW Load Balancing Solution for Cloud Deployment

Thank you !

Q & A

Email : [email protected]