5.10. Kubernetes density testing¶
- status
ready
- version
1.0
- Abstract
This test plan covers scenarios of density testing of Kubernetes
5.10.1. Test Plan¶
5.10.1.1. Test Environment¶
5.10.1.1.1. Preparation¶
The test plan is executed against Kubernetes deployed on bare-metal nodes.
5.10.1.1.2. Environment description¶
The environment description includes hardware specification of servers, network parameters, operation system and OpenStack deployment characteristics.
5.10.1.2. Test Case #1: Maximum pods per node¶
5.10.1.2.1. Description¶
Kubernetes by default limits number of pods running by the node. The value is chosen by community and since version 1.4 equals to 110 (k8s_max_pods).
The goal of this test is to investigate system behavior at default limit and find out whether it can be increased or not. In particular we are interested in the following metrics: pod startup time during mass start (e.g. when replication controller is scaled up) and node’s average load.
From manual experiments it is observed that pod starts functioning before Kubernetes API reports it to be in running state. In this test case we are interested to investigate how long does it takes for Kubernetes to update pod status.
5.10.1.2.2. List of performance metrics¶
Parameter |
Description |
---|---|
POD_COUNT |
Number of pods |
POD_FIRST_REPORT |
Time taken by pod to start and report |
KUBECTL_RUN |
Time for all pods to be reported as running |
KUBECTL_TERMINATE |
Time to terminate all pods |
5.10.1.3. Test Case #2: Measure Kubelet capacity¶
5.10.1.3.1. Description¶
The goal of this test is to investigate Kubelet capacity. For this, rerun test case #1 for different number of nodes.
5.10.1.3.2. List of performance metrics¶
Parameter |
Description |
---|---|
POD_COUNT |
Number of pods |
NODE_COUNT |
Number of nodes |
POD_FIRST_REPORT |
Time taken by pod to start and report |
KUBECTL_RUN |
Time for all pods to be reported as running |
KUBECTL_TERMINATE |
Time to terminate all pods |
5.10.2. Reports¶
- Test plan execution reports: