vpp
vpp copied to clipboard
L2/L3 PODs Config crashed when scaling, stressing the multi-path l2xconnect SFCs render
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