5.11. Kubernetes DNS performance test plan¶
- status
ready
- version
1.0
- Abstract
This test plan covers scenarios for Kubernetes DNS performance testing.
5.11.1. Test Plan¶
Kubernetes DNS schedules a DNS Pod and Service on the cluster, and configures the kubelets to tell individual containers to use the DNS Service’s IP to resolve DNS names.
“Normal” (not headless) Services are assigned a DNS A record for a name of
the form my-svc.my-namespace.svc.cluster.local
. This resolves to the
cluster IP of the Service.
Under DNS performance we mean the amount of work produced by a service, for DNS service this can be measured as number of requests for resolving host per second.
5.11.1.1. Test Environment¶
5.11.1.1.1. Preparation¶
The test plan is executed against Kubernetes deployed on bare-metal nodes.
5.11.1.1.2. Environment description¶
The environment description includes hardware specification of servers, network parameters, operation system and OpenStack deployment characteristics.
5.11.1.2. Test Case #1: Performing DNS queries¶
5.11.1.2.1. Description¶
In this test case we investigate how number of queries affects Kubernetes DNS performance.
Script code/test_kubedns.py
will create Kubernetes services based
on file code/template.yaml
. After that, will make request to this
services by host name. Results will show number of failed hosts.
5.11.1.2.2. Parameters¶
Case group 1:
Parameter name |
Value |
---|---|
number of replicas |
1, 2, 3 |
requests per second |
50, 100, …, 1000 |
number of Services |
1000 |
number of attempts |
1000 |
5.11.1.2.3. List of performance metrics¶
Parameter |
Description |
---|---|
FAILED_HOSTS |
Number of hosts, which not be resolved by DNS |
SUCCESS_RATE |
Percentage of successful queries |
5.11.2. Reports¶
- Test plan execution reports: