k8s.io/perf-tests/clusterloader2@v0.0.0-20240304094227-64bdb12da87e/testing/l4lb/config.yaml (about) 1 # LOAD_BALANCER_BACKEND_SIZE specifies the number of backend pods behind each LB 2 {{$LOAD_BALANCER_BACKEND_SIZE := DefaultParam .CL2_LOAD_BALANCER_BACKEND_SIZE 5}} 3 # LOAD_BALANCER_REPLICAS specifies the number of Load balancer type service 4 {{$LOAD_BALANCER_REPLICAS := DefaultParam .CL2_LOAD_BALANCER_REPLICAS 3}} 5 # LOAD_BALANCER_TYPE specifies the type of L4 LB created. Valid values are "INTERNAL" and "EXTERNAL" 6 {{$LOAD_BALANCER_TYPE := DefaultParam .CL2_LOAD_BALANCER_TYPE "EXTERNAL"}} 7 # $EXTERNAL_TRAFFIC_POLICY specifies the externalTrafficPolicy on LB type service. Valid values are "Cluster" and "Local" 8 {{$EXTERNAL_TRAFFIC_POLICY := DefaultParam .CL2_EXTERNAL_TRAFFIC_POLICY "Cluster"}} 9 # $NODE_SYNC_TIMEOUT specifies the timeout to wait for nodesync to complete 10 {{$NODE_SYNC_TIMEOUT := DefaultParam .CL2_NODE_SYNC_TIMEOUT "30m"}} 11 # L4LB_SYNC_TIMEOUT specifies the timeout to wait for LB creation or deletion to complete 12 {{$L4LB_SYNC_TIMEOUT := DefaultParam .CL2_L4LB_SYNC_TIMEOUT "30m"}} 13 14 # adding a fixed value for first version of the test, rate of pod creation not a concern yet. 15 {{$lbQPS := 20}} 16 {{$namespaces := 1}} 17 18 name: l4lbload 19 namespace: 20 number: {{$namespaces}} 21 tuningSets: 22 - name: LBConstantQPS 23 qpsLoad: 24 qps: {{$lbQPS}} 25 steps: 26 - name: Initialize Measurements 27 measurements: 28 - Identifier: LBServiceCreationLatency 29 Method: ServiceCreationLatency 30 Params: 31 action: start 32 labelSelector: test = l4lb-load 33 waitTimeout: {{$L4LB_SYNC_TIMEOUT}} 34 - Identifier: WaitForRunningDeployments 35 Method: WaitForControlledPodsRunning 36 Params: 37 action: start 38 apiVersion: apps/v1 39 kind: Deployment 40 labelSelector: test = l4lb-load 41 operationTimeout: 15m 42 - name: Creating LBs 43 phases: 44 - namespaceRange: 45 min: 1 46 max: {{$namespaces}} 47 replicasPerNamespace: {{$LOAD_BALANCER_REPLICAS}} 48 tuningSet: LBConstantQPS 49 objectBundle: 50 - basename: lb-service 51 objectTemplatePath: service.yaml 52 templateFillMap: 53 DeploymentBaseName: lb-dep 54 ExternalTrafficPolicy: {{$EXTERNAL_TRAFFIC_POLICY}} 55 LoadBalancerType: {{$LOAD_BALANCER_TYPE}} 56 - basename: lb-dep 57 objectTemplatePath: dep.yaml 58 templateFillMap: 59 NumReplicas: {{$LOAD_BALANCER_BACKEND_SIZE}} 60 - name: Wait for LBs to be ready 61 measurements: 62 - Identifier: LBServiceCreationLatency 63 Method: ServiceCreationLatency 64 Params: 65 action: waitForReady 66 - Identifier: WaitForRunningDeployments 67 Method: WaitForControlledPodsRunning 68 Params: 69 action: gather 70 - name: Measure NodeSync latency 71 measurements: 72 - Identifier: NodeSyncLatency 73 Method: LoadBalancerNodeSyncLatency 74 Params: 75 action: measure 76 labelSelector: test = l4lb-load 77 waitTimeout: {{$NODE_SYNC_TIMEOUT}} 78 - name: Deleting LBs 79 phases: 80 - namespaceRange: 81 min: 1 82 max: {{$namespaces}} 83 replicasPerNamespace: 0 84 tuningSet: LBConstantQPS 85 objectBundle: 86 - basename: lb-service 87 objectTemplatePath: service.yaml 88 - basename: lb-dep 89 objectTemplatePath: dep.yaml 90 - name: Wait for LBs to be deleted 91 measurements: 92 - Identifier: LBServiceCreationLatency 93 Method: ServiceCreationLatency 94 Params: 95 action: waitForDeletion 96 - name: Gather Measurements 97 measurements: 98 - Identifier: LBServiceCreationLatency 99 Method: ServiceCreationLatency 100 Params: 101 action: gather 102 - Identifier: NodeSyncLatency 103 Method: LoadBalancerNodeSyncLatency 104 Params: 105 action: gather