Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
AdelBouridah opened this issue Mar 23, 2020 · 0 comments

Comments

@AdelBouridah
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant