azure-container-networking/test/scale
Camryn Lee f71277149a
ci: cilium scale pipeline (#2085)
* ci: adding scale pipeline for cilium

* change timeout

* change timeout

* update net policies

* use acn build pool to avoid azp delays

* address comments -- update build pool var and remove timeouts from scale

* address comments -- set node/pod counts and test input as variables

* remove all test resources

* check apachebench rollout status

* collect more cpu/mem results

* add cns restart and fix artifact upload

* add cns restart and fix artifact upload

* update name for artifact publishing

* update apachebench artifact collection

* update apachebench artifact collection

* test cns version check

* change cns update

* update artifact directory name

* add netperf testing stage

* give permissions to netperf script

* change netperf steps

* update path to netperf yaml

* change netperf deployment to 2

* get correct pods in netperf script

* publish netperf results

* publish netperf results

* add same vm test for netperf

* netperf script to print pod values

* netperf find nodes logic

* netperf find nodes logic
2023-08-14 22:37:50 +00:00
..
config test: Adding prometheus config for acn docs (#1964) 2023-06-07 14:47:25 +00:00
connectivity ci: [NPM] scale test pipeline using KWOK (#1915) 2023-05-18 09:57:21 -07:00
templates test: create nginx deployments in scale test (#2074) 2023-07-25 21:13:59 +00:00
utils test: k8s scale testing with KWOK (#1879) 2023-04-06 12:34:53 -07:00
README.md test:[NPM] Adding service deployment for the scale test (#2007) 2023-06-20 02:30:20 +00:00
install-kwok.sh test: expand KWOK scripts to test deletions and more (#1910) 2023-04-14 10:10:40 -07:00
label-nodes.sh ci: cilium scale pipeline (#2085) 2023-08-14 22:37:50 +00:00
run-kwok.sh test: expand KWOK scripts to test deletions and more (#1910) 2023-04-14 10:10:40 -07:00
test-scale.sh test: create nginx deployments in scale test (#2074) 2023-07-25 21:13:59 +00:00

README.md

Overview

Scripts for scale testing our components in AKS with fake and/or real resources.

Fake Resources

Scripts can use KWOK to simulate running Pods. KWOK can instantly run thousands of fake VMs and Pods.

This saves us from:

  1. Large resource costs.
  2. Hours waiting for VMs and Pods to bootup.

Usage

  1. Create AKS cluster with --uptime-sla and create any nodepools.
  2. If making KWOK Pods, run run-kwok.sh in the background.
  3. Scale with test-scale.sh. Specify number of Deployments, Pod replicas, NetworkPolicies, and labels for Pods. Can also delete/re-add objects to cause churn.
  4. Test connectivity with connectivity/test-connectivity.sh.

Example Runs

./test-scale.sh --max-kwok-pods-per-node=50 \
    --num-kwok-deployments=10 \
    --num-kwok-replicas=1 \
    --max-real-pods-per-node=30 \
    --num-real-deployments=5 \
    --num-real-services=4 \
    --num-real-replicas=2 \
    --num-network-policies=1 \
    --num-unapplied-network-policies=10 \
    --num-unique-labels-per-pod=2 \
    --num-unique-labels-per-deployment=2 \
    --num-shared-labels-per-pod=10 \
    --delete-labels \
    --delete-labels-interval=30 \
    --delete-labels-times=2 \
    --delete-netpols \
    --delete-netpols-interval=0 \
    --delete-netpols-times=1 \
    --delete-kwok-pods=10 \
    --delete-real-pods=5 \
    --delete-pods-interval=120 \
    --delete-pods-times=2

Note: you must run ./test-scale.sh first with --num-network-policies=1 or more, and --num-shared-labels-per-pod=3 or more.

./test-connectivity.sh --num-scale-pods-to-verify=all \
    --max-wait-for-initial-connectivity=600 \
    --max-wait-after-adding-netpol=120