Skip to content

L2/L3 PODs Config crashed when scaling, stressing the multi-path l2xconnect SFCs render  #1734

@AdelBouridah

Description

@AdelBouridah

When creating multi-paths (multi-replicatset linux CNFs) SFC with the l2xconnect render and trying to so some load-balancing algorithm tests with IPERF. I have configured Input/Output CNFs with Fixed IP adresses and bridging the in the midst CNFs to only forward traffic (no special treatment). Whereas, when stressing the system some PODS lose their Config (IP or Bridge). Before the IPERF tests I check that the net configs and SFCs are well established with auto pings of all paths.

---> We need the heck if the problem is related to Contiv vpp or K8s

Here after the yaml definition of the replicasetds CNFs and the SFC.


Linux CNF 1 pod definition. Pod is connected with one additional tap interface

in the "stub" network = meaning that it won't have any IP address assigned.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: cnf1-sfc1
labels:
cnf: cnf1-sfc1-rp
spec:

modify replicas according to your case

replicas: 20
selector:
matchLabels:
cnf: cnf1-sfc1-rp
template:
metadata:
annotations:
contivpp.io/custom-if: tap1/tap/stub
labels:
cnf: cnf1-sfc1-rp
spec:
containers:
- name: iperf-overlay-client
image: jmarhee/iperf:latest
imagePullPolicy: IfNotPresent
securityContext:
privileged: true


Linux CNF 1 pod definition. Pod is connected with one additional tap interface

in the "stub" network = meaning that it won't have any IP address assigned.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: cnf2-sfc1
labels:
cnf: cnf2-sfc1-rp
spec:

modify replicas according to your case

replicas: 20
selector:
matchLabels:
cnf: cnf2-sfc1-rp
template:
metadata:
annotations:
contivpp.io/custom-if: tap1/tap/stub, tap2/tap/stub
labels:
cnf: cnf2-sfc1-rp
spec:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
command:
- sleep
- "3600"


Linux CNF 1 pod definition. Pod is connected with one additional tap interface

in the "stub" network = meaning that it won't have any IP address assigned.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: cnf3-sfc1
labels:
cnf: cnf3-sfc1-rp
spec:

modify replicas according to your case

replicas: 20
selector:
matchLabels:
cnf: cnf3-sfc1-rp
template:
metadata:
annotations:
contivpp.io/custom-if: tap1/tap/stub, tap2/tap/stub
labels:
cnf: cnf3-sfc1-rp
spec:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
command:
- sleep
- "3600"


Linux CNF 1 pod definition. Pod is connected with one additional tap interface

in the "stub" network = meaning that it won't have any IP address assigned.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: cnf4-sfc1
labels:
cnf: cnf4-sfc1-rp
spec:

modify replicas according to your case

replicas: 20
selector:
matchLabels:
cnf: cnf4-sfc1-rp
template:
metadata:
annotations:
contivpp.io/custom-if: tap1/tap/stub, tap2/tap/stub
labels:
cnf: cnf4-sfc1-rp
spec:
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
command:
- sleep
- "3600"


Linux CNF 1 pod definition. Pod is connected with one additional tap interface

in the "stub" network = meaning that it won't have any IP address assigned.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: cnf5-sfc1
labels:
cnf: cnf5-sfc1-rp
spec:

modify replicas according to your case

replicas: 20
selector:
matchLabels:
cnf: cnf5-sfc1-rp
template:
metadata:
annotations:
contivpp.io/custom-if: tap1/tap/stub
labels:
cnf: cnf5-sfc1-rp
spec:
containers:
- name: iperf-overlay-server
image: jmarhee/iperf:latest
ports:
- containerPort: 5001
imagePullPolicy: IfNotPresent
securityContext:
privileged: true

The SFC is the following


apiVersion: contivpp.io/v1
kind: ServiceFunctionChain
metadata:
name: sfc1
spec:
chain:
- name: CNF 1
type: Pod
podSelector:
cnf: cnf1-sfc1-rp
interface: tap1

- name: CNF 2
  type: Pod
  podSelector:
    cnf: cnf2-sfc1-rp
  inputInterface: tap1
  outputInterface: tap2

- name: CNF 3
  type: Pod
  podSelector:
    cnf: cnf3-sfc1-rp
  inputInterface: tap1
  outputInterface: tap2

- name: CNF 4
  type: Pod
  podSelector:
    cnf: cnf4-sfc1-rp
  inputInterface: tap1
  outputInterface: tap2

- name: CNF 5
  type: Pod
  podSelector:
    cnf: cnf5-sfc1-rp
  interface: tap1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions