diff --git a/doc/source/test_plans/kubernetes_density/plan.rst b/doc/source/test_plans/kubernetes_density/plan.rst new file mode 100644 index 0000000..779ae5e --- /dev/null +++ b/doc/source/test_plans/kubernetes_density/plan.rst @@ -0,0 +1,77 @@ +.. _Kubernetes_density_test_plan: + +************************** +Kubernetes density testing +************************** + +:status: **ready** +:version: 1.0 + +:Abstract: + + This test plan covers scenarios of density testing of Kubernetes + +Test Plan +========= + +Test Environment +---------------- + +Preparation +^^^^^^^^^^^ + +The test plan is executed against Kubernetes deployed on bare-metal nodes. + +Environment description +^^^^^^^^^^^^^^^^^^^^^^^ + +The environment description includes hardware specification of servers, +network parameters, operation system and OpenStack deployment characteristics. + + +Test Case #1: Maximum pods per node +----------------------------------- + +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. + +List of performance metrics +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. table:: list of test metrics to be collected during this test + + +-------------------------+---------------------------------------------+ + | 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 | + +-------------------------+---------------------------------------------+ + + +Reports +======= + +Test plan execution reports: + * :ref:`Kubernetes_density_test_report` + + +.. references: + +.. _k8s_max_pods: https://github.com/kubernetes/kubernetes/blob/v1.5.0/pkg/apis/componentconfig/v1alpha1/defaults.go#L290 \ No newline at end of file diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/100-start.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/100-start.svg new file mode 100644 index 0000000..2880ee2 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/100-start.svg @@ -0,0 +1,2245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/100-term.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/100-term.svg new file mode 100644 index 0000000..8cae37f --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/100-term.svg @@ -0,0 +1,1573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/200-start.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/200-start.svg new file mode 100644 index 0000000..f58b44a --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/200-start.svg @@ -0,0 +1,4177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/200-term.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/200-term.svg new file mode 100644 index 0000000..3a9e83b --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/200-term.svg @@ -0,0 +1,1785 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/400-start.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/400-start.svg new file mode 100644 index 0000000..b58ad0c --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/400-start.svg @@ -0,0 +1,7222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/400-term.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/400-term.svg new file mode 100644 index 0000000..b95c078 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/400-term.svg @@ -0,0 +1,4476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/50-start.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/50-start.svg new file mode 100644 index 0000000..1925f39 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/50-start.svg @@ -0,0 +1,1595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/50-term.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/50-term.svg new file mode 100644 index 0000000..02e20de --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/50-term.svg @@ -0,0 +1,1336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/N-cpu-system.png b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-cpu-system.png new file mode 100644 index 0000000..81a27fd Binary files /dev/null and b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-cpu-system.png differ diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/N-cpu-user.png b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-cpu-user.png new file mode 100644 index 0000000..8b9cd57 Binary files /dev/null and b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-cpu-user.png differ diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/N-disk-io.png b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-disk-io.png new file mode 100644 index 0000000..df2c6ea Binary files /dev/null and b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-disk-io.png differ diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/N-mem-used.png b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-mem-used.png new file mode 100644 index 0000000..9b16a37 Binary files /dev/null and b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-mem-used.png differ diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/N-start-term.svg b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-start-term.svg new file mode 100644 index 0000000..f4233f3 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/N-start-term.svg @@ -0,0 +1,4552 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/data/data.tar.bz2 b/doc/source/test_results/container_cluster_systems/kubernetes/density/data/data.tar.bz2 new file mode 100644 index 0000000..5d37698 Binary files /dev/null and b/doc/source/test_results/container_cluster_systems/kubernetes/density/data/data.tar.bz2 differ diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/index.rst b/doc/source/test_results/container_cluster_systems/kubernetes/density/index.rst new file mode 100644 index 0000000..5cad40d --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/index.rst @@ -0,0 +1,183 @@ +.. _Kubernetes_density_test_report: + +****************************** +Kubernetes density test report +****************************** + +:Abstract: + + This document is the report for :ref:`Kubernetes_density_test_plan` + + +Environment description +======================= + +This report is collected on the hardware described in +:ref:`intel_mirantis_performance_lab_1`. + + +Software +~~~~~~~~ + +Kubernetes is installed using :ref:`Kargo` deployment tool on Ubuntu 16.04.1. + +Node roles: + - node1: minion+master+etcd + - node2: minion+master+etcd + - node3: minion+etcd + - node4: minion + +Software versions: + - OS: Ubuntu 16.04.1 LTS (Xenial Xerus) + - Kernel: 4.4.0-47 + - Docker: 1.12.1 + - Kubernetes: 1.4.3 + +Reports +======= + +Test Case #1: Maximum pods per node +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Pod startup time is measured with help of +`MMM(MySQL/Master/Minions) testing suite`_. To schedule all pods on a single +node the original replication controller for minions is updated with scheduler +hint. To do this add the following lines into template's spec section: + +.. code-block:: yaml + + nodeSelector: + kubernetes.io/hostname: node4 + +Pod status from Kubernetes point of view is retrieved from kubectl tool. +The process is automated with +:download:`kubectl_mon.py `, which produces +output in CSV format. Charts are created by +:download:`pod_stats.py ` script. + +Every measurement starts with empty namespace. Then Kubernetes replication +controller is created with specified number of pods. We collect pod's report +time and kubectl stats. The summary data is presented below. + +.. image:: summary.png + +.. list-table:: POD stats + :header-rows: 1 + + * + - POD_COUNT + - POD_FIRST_REPORT, s + - KUBECTL_RUN, s + - KUBECTL_TERMINATE, s + * + - 50 + - 12 + - 44 + - 30 + * + - 100 + - 27 + - 131 + - 87 + * + - 200 + - 61 + - 450 + - 153 + * + - 400 + - 208 + - ∞ (not finished) + - 390 + + + +Detailed Stats +-------------- + +50 pods +^^^^^^^ + +Start replication controller with 50 pods + +.. image:: 50-start.svg + :width: 100% + +Terminate replication controller with 50 pods + +.. image:: 50-term.svg + :width: 100% + +100 pods +^^^^^^^^ + +Start replication controller with 100 pods + +.. image:: 100-start.svg + :width: 100% + +Terminate replication controller with 100 pods + +.. image:: 100-term.svg + :width: 100% + +200 pods +^^^^^^^^ + +Start replication controller with 200 pods + +.. image:: 200-start.svg + :width: 100% + +Terminate replication controller with 200 pods + +.. image:: 200-term.svg + :width: 100% + +400 pods +^^^^^^^^ + +Start replication controller with 400 pods. + +Note: In this experiment all pods successfully reported, however from Kubernetes API +point of view less than 60 pods were in running state. The number of pods +reported as running was slowly increasing over the time, but the speed was very +low to treat the process as succeed. + +.. image:: 400-start.svg + :width: 100% + +Terminate replication controller with 400 pods. + +.. image:: 400-term.svg + :width: 100% + +Scale by 100 pods steps +^^^^^^^^^^^^^^^^^^^^^^^ + +In this experiment we scale replication controller up by steps of 100 pods. +Scaling process is invoked after all pods are reported as running. On step 3 +(201-300 pods) the process has become significantly slower and we've started +scaling replication controller down. The full cycle is visualized below. + +.. image:: N-start-term.svg + :width: 100% + +System metrics from API nodes and minion are below + +.. image:: N-cpu-user.png + +.. image:: N-cpu-system.png + +.. image:: N-mem-used.png + +.. image:: N-disk-io.png + +Full `Kubernetes stats`_ are available online. + + +.. references: + +.. _Kargo: https://github.com/kubespray/kargo +.. _MMM(MySQL/Master/Minions) testing suite: https://github.com/AleksandrNull/MMM +.. _Kubernetes stats: https://snapshot.raintank.io/dashboard/snapshot/YCtAh7jHhYpmWk8nsfda0EAIRRnG4TV9 \ No newline at end of file diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/kubectl-mon/kubectl_mon.py b/doc/source/test_results/container_cluster_systems/kubernetes/density/kubectl-mon/kubectl_mon.py new file mode 100644 index 0000000..de5f1c5 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/kubectl-mon/kubectl_mon.py @@ -0,0 +1,27 @@ +#!/bin/python + +import re +import subprocess +import time + +KUBECTL_CMD = 'kubectl --namespace minions get pods -l k8s-app=minion' + + +def main(): + while True: + start = time.time() + stdout = subprocess.Popen(KUBECTL_CMD, shell=True, + stdout=subprocess.PIPE).stdout.read() + print('time,name,status') + for line in stdout.split('\n')[1:]: + if line: + tokens = re.split('\s+', line) + name = tokens[0] + status = tokens[2] + print('%f,%s,%s' % (start, name, status)) + + d = 1 - (time.time() - start) + time.sleep(d) + +if __name__ == '__main__': + main() diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/kubectl-mon/pod_stats.py b/doc/source/test_results/container_cluster_systems/kubernetes/density/kubectl-mon/pod_stats.py new file mode 100644 index 0000000..5d42ee1 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/kubectl-mon/pod_stats.py @@ -0,0 +1,85 @@ +#!/bin/python + +import argparse +import operator +import itertools +import numpy as np +import matplotlib.patches as mpatches +import matplotlib.pyplot as plt +import matplotlib.ticker as mticker + +COLORS = { + 'Pending': '#ffb624', + 'ContainerCreating': '#ebeb00', + 'Running': '#50c878', + 'Terminating': '#a366ff', + 'Error': '#cc0000', +} + +def main(): + parser = argparse.ArgumentParser(prog='pod-stats') + parser.add_argument('data', nargs='+') + args = parser.parse_args() + + source = args.data[0] + data = np.genfromtxt(source, dtype=None, delimiter=',', + skip_header=1, skip_footer=0, + names=['time', 'name', 'status']) + categories = list(set(x[2] for x in data)) + categories.sort() + + processed = [] + t = [] + base_time = data[0][0] + + for k, g in itertools.groupby(data, key=operator.itemgetter(0)): + r = dict((c, 0) for c in categories) + for x in g: + r[x[2]] += 1 + + v = [r[c] for c in categories] + processed.append(v) + t.append(k - base_time) + + figure = plt.figure() + plot = figure.add_subplot(111) + + colors = [COLORS[c] for c in categories] + + plot.stackplot(t, np.transpose(processed), colors=colors) + + if len(args.data) > 1: + y = [] + x = [] + with open(args.data[1]) as fd: + cnt = fd.read() + for i, p in enumerate(cnt.strip().split('\n')): + x.append(int(p) / 1000.0 - base_time) + y.append(i) + plot.plot(x, y, 'b.') + + plot.grid(True) + plot.set_xlabel('time, s') + plot.set_ylabel('pods') + + ax = figure.gca() + ax.yaxis.set_major_locator(mticker.MaxNLocator(integer=True)) + + # add legend + patches = [mpatches.Patch(color=c) for c in colors] + texts = categories + + if len(args.data) > 1: + patches.append(mpatches.Patch(color='blue')) + texts.append('Pod report') + + legend = plot.legend(patches, texts, loc='right', shadow=True) + + for label in legend.get_texts(): + label.set_fontsize('small') + + plt.show() + figure.savefig('figure.svg') + +if __name__ == '__main__': + main() diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/Dockerfile b/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/Dockerfile new file mode 100644 index 0000000..e0900ac --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/Dockerfile @@ -0,0 +1,10 @@ +FROM debian:latest +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get -y upgrade +RUN apt-get -y --no-install-recommends install python + +ADD minion.py /opt/minion/minion +RUN chmod 0777 /opt/minion/minion + +ENTRYPOINT ["/opt/minion/minion"] diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/minion.py b/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/minion.py new file mode 100644 index 0000000..eaf12d0 --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/minion.py @@ -0,0 +1,35 @@ +#!/usr/bin/python2 + +import httplib +import signal +import sys +import time +import uuid + + +class GracefulKiller: + kill_now = False + + def __init__(self): + signal.signal(signal.SIGINT, self.exit_gracefully) + signal.signal(signal.SIGTERM, self.exit_gracefully) + + def exit_gracefully(self, signum, frame): + print('Signal caught') + self.kill_now = True + sys.exit(0) + + +if __name__ == '__main__': + killer = GracefulKiller() + + t = int(time.time() * (10 ** 3)) + u = str(uuid.uuid4()) + e = '' + c = httplib.HTTPConnection('172.20.9.7:8000') + q = '%s' % t + print(q) + c.request('GET', q) + r = c.getresponse() + print(r.status) + time.sleep(2 << 20) diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/rc.yaml b/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/rc.yaml new file mode 100644 index 0000000..12a02bc --- /dev/null +++ b/doc/source/test_results/container_cluster_systems/kubernetes/density/minion/rc.yaml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: minion + namespace: minions + +spec: + replicas: 1 + selector: + k8s-app: minion + version: v0 + template: + metadata: + labels: + k8s-app: minion + version: v0 + spec: + containers: + - name: minion + image: 127.0.0.1:31500/qa/minion:latest + env: + - name: MINION_RC + value: "1" + nodeSelector: + kubernetes.io/hostname: node4 diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/density/summary.png b/doc/source/test_results/container_cluster_systems/kubernetes/density/summary.png new file mode 100644 index 0000000..873fc72 Binary files /dev/null and b/doc/source/test_results/container_cluster_systems/kubernetes/density/summary.png differ diff --git a/doc/source/test_results/container_cluster_systems/kubernetes/index.rst b/doc/source/test_results/container_cluster_systems/kubernetes/index.rst index eaa2724..878a3e5 100644 --- a/doc/source/test_results/container_cluster_systems/kubernetes/index.rst +++ b/doc/source/test_results/container_cluster_systems/kubernetes/index.rst @@ -5,4 +5,5 @@ Kubernetes system performance :numbered: :maxdepth: 4 - API_testing/index \ No newline at end of file + API_testing/index + density/index