Northbound Connections of VPP for NFV in Containers and Kubernetes - - PowerPoint PPT Presentation

▶
northbound connections of vpp for nfv in containers and
SMART_READER_LITE
LIVE PREVIEW

Northbound Connections of VPP for NFV in Containers and Kubernetes - - PowerPoint PPT Presentation

Northbound Connections of VPP for NFV in Containers and Kubernetes FastData.io VPP Billy McFall bmcfall@RedHat.com Agenda Ligato Previous Session Multus CNI / Userspace CNI Network Service Mesh Summary Multus CNI


slide-1
SLIDE 1

Northbound Connections of VPP for NFV in Containers and Kubernetes

FastData.io – VPP

Billy McFall bmcfall@RedHat.com

slide-2
SLIDE 2

Agenda

  • Ligato ← Previous Session
  • Multus CNI / Userspace CNI
  • Network Service Mesh
  • Summary
slide-3
SLIDE 3

Multus CNI / Userspace CNI

What is Multus CNI?

  • Multus CNI is a reference implementation of the “Kubernetes Network Custom

Resource Definition De-facto Standard” put forward by the Kubernetes Network Plumbing Working Group.

  • Multus CNI is a “meta-plugin”
  • Kubelet calls its one and only CNI, which in this case is Multus CNI.
  • Multus, based on CRD (CustomResourceDefinitions) calls multiple CNIs.
  • Multus returns status of default CNI (for default K8s Network) and logs results for others.
  • Kubernetes is only aware of Default Network.

Pod

eth0 net1 net0

Default K8s Network NW1 NW2

Kubelet Multus CNI CNI 1 CNI 2 CNI n

3) CNI 1 Results 1) Default CNI called 2) Multiple CNIs called

slide-4
SLIDE 4

Multus CNI / Userspace CNI

What is Userspace CNI?

  • Userspace CNI inserts DPDK based interfaces into a container.
  • Enables high speed Userspace Interfaces in container.
  • Enables L2, L3, Tunneling protocols in container.
  • Because it is using Multus, Kubernetes is unaware of the additional

interfaces and networks.

  • Currently supports VPP or OvS-DPDK.

Pod

eth0 net1 net0

Default K8s Network NW1 NW2

Kubelet Multus CNI Example: Flannel Userspace CNI Userspace CNI

3) CNI 1 Results 1) Default CNI called 2) Multiple CNIs called

slide-5
SLIDE 5

Multus CNI / Userspace CNI

Userspace CNI – More Detail

Steps:

  • Creates Userspace Interface in vSwitch on host.
  • Ties interface into local network.

– Current: L2 (North-South Traffic) – Future: MPLS/VxLAN/etc. (East-West Traffic)

  • Publishes configuration data to Pod for consumption of interface in Pod.

Container Container

engine engine vSwitch (OvS-DPDK/VPP) vhost- user

  • r memif

eth0 net0 eth0 net0

slide-6
SLIDE 6

Node Node

Network Service Mesh (NSM)

What is Network Service Mesh (NSM)?

  • NSM is a Service Abstraction that plugs containers into

external networks (outside Kubernetes default network).

–

Pod to Pod

–

Pod to External Network

Pod

eth0 net1 net0

NW1 NW2

Pod

eth0 net0

Default K8s Network

NSM

slide-7
SLIDE 7

Network Service Mesh (NSM)

What is Network Service Mesh (NSM)?

  • NSM enables:

–

Heterogeneous network configurations

–

Wide variety of tunneling protocols

–

On-Demand, dynamic, negotiated connections

–

Bringing multiple payload types into a container (Ethernet, IP, MPLS, L2TP, etc.)

  • NSM facilitates apps specifically implement network functions.
  • NSM allows traditional app developers to configure the

networking elements they want while hiding the complexity and “networkiness”.

slide-8
SLIDE 8

Network Service Mesh (NSM)

  • NSM forces you to think of Networking as a Service

– Creates connections with Network Service Clients and

Network Service Endpoints

  • Networking Payloads are not an afterthought:

– Layer 2, Layer 3, MPLS Payloads – Enablement for NFV

  • Plays well with Kubernetes

– Does not Interfere with Kubernetes Default Networking – Kubernetes handles management and orchestration of pod

while NSM handles complex networking.

slide-9
SLIDE 9

Summary

Which is better?

Ligato

  • Ligato inserts

Userspace into the Kubernetes default network

  • Large feature set
slide-10
SLIDE 10

Summary

Which is better?

Ligato

  • Ligato inserts

Userspace into the Kubernetes default network

  • Large feature set

Multus CNI Userspace CNI

  • Userspace CNI inserts

Userspace outside the Kubernetes default network

  • Separation of Control

and Data Traffic

  • Early in development
slide-11
SLIDE 11

Summary

Which is better?

Ligato

  • Ligato inserts

Userspace into the Kubernetes default network

  • Large feature set

Multus CNI Userspace CNI

  • Userspace CNI inserts

Userspace outside the Kubernetes default network

  • Separation of Control

and Data Traffic

  • Early in development

NSM

  • Provides Service

abstraction

  • Inserts container

networks outside the Kubernetes default network

  • Could leverage Ligato
  • r Multus if needed
  • Early in development
slide-12
SLIDE 12

Summary

Which is better?

Ligato

  • Ligato inserts

Userspace into the Kubernetes default network

  • Large feature set

Multus CNI Userspace CNI

  • Userspace CNI inserts

Userspace outside the Kubernetes default network

  • Separation of Control

and Data Traffic

  • Early in development

NSM

  • Provides Service

abstraction

  • Inserts container

networks outside the Kubernetes default network

  • Could leverage Ligato
  • r Multus if needed
  • Early in development

Depends on the use-case! But all leverage the high speed and rich features of VPP!

slide-13
SLIDE 13

Summary

Call to Action!

All Projects Need Help:

  • Coders
  • Architects
  • Valid Use Cases

How can you HELP?

slide-14
SLIDE 14

THANK YOU !

slide-15
SLIDE 15

References

  • Ligato

–

https://ligato.io/

–

https://github.com/ligato

  • Multus CNI

–

https://github.com/intel/multus-cni

–

Kubernetes Network Plumbing Working Group

  • Userspace CNI

–

https://github.com/intel/userspace-cni-network-plugin

  • NSM

–

https://networkservicemesh.io/

–

https://github.com/networkservicemesh/networkservicemesh