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

list of test metrics to be collected during this test

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: