-
Notifications
You must be signed in to change notification settings - Fork 110
Description
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