{"id":18185125,"url":"https://github.com/pete911/k8s-netperf-examples","last_synced_at":"2025-04-07T12:41:35.203Z","repository":{"id":150290291,"uuid":"523666339","full_name":"pete911/k8s-netperf-examples","owner":"pete911","description":"simple example of running netperf in kubernetes cluster","archived":false,"fork":false,"pushed_at":"2022-08-11T09:46:55.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T15:23:52.774Z","etag":null,"topics":["kubernetes","kubernetes-cluster","kubernetes-performance","netperf"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pete911.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-11T09:43:40.000Z","updated_at":"2022-08-11T09:47:48.000Z","dependencies_parsed_at":"2023-04-30T08:52:38.107Z","dependency_job_id":null,"html_url":"https://github.com/pete911/k8s-netperf-examples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Fk8s-netperf-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Fk8s-netperf-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Fk8s-netperf-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Fk8s-netperf-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pete911","download_url":"https://codeload.github.com/pete911/k8s-netperf-examples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247655102,"owners_count":20974119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubernetes","kubernetes-cluster","kubernetes-performance","netperf"],"created_at":"2024-11-02T22:22:29.955Z","updated_at":"2025-04-07T12:41:35.169Z","avatar_url":"https://github.com/pete911.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# simple example of running netperf in k8s cluster\nSimple project to get started with latency testing in kubernetes cluster. Similar concept can be used with\ndifferent tools e.g. iperf, ping, ...\n\nThis is just a template project, feel free to update `.yaml` manifests to include node selectors, tolerations etc.\n\n## setup\nYou can skip this setup if you are going to run tests on an existing cluster\n- start kind cluster `kind create cluster --name netperf --config kind-config.yaml`\n- build netperf docker image `docker build -t pete911/netperf:latest .`\n- load netperf docker image to the cluster `kind load docker-image pete911/netperf:latest --name netperf`\n\n## install\n- install netperf deployments:\n  - daemonset (one server, client on every node) `kubectl apply -f k8s-netperf-ds.yaml`\n  - server and client as containers in a single pod `kubectl apply -f k8s-netperf-single-pod.yaml`\n\n## test\n\n### pod to pod\n- get netperf server \n  - pod name, node name and pod IP `kubectl get pod -l app.kubernetes.io/name=netperf-server -o=custom-columns=NAME:.metadata.name,NODE:.spec.nodeName,IP:.status.podIP` \n  - or more info if needed `kubectl get pod -l app.kubernetes.io/name=netperf-server -o wide`\n- get netperf clients\n  - pod and node name `kubectl get pod -l app.kubernetes.io/name=netperf-client -o=custom-columns=NAME:.metadata.name,NODE:.spec.nodeName`\n  - or more info if needed `kubectl get pod -l app.kubernetes.io/name=netperf-client -o wide`\n- exec to a client pod (either on the same node as server or different) `kubectl exec -it \u003cpod-name\u003e -- sh` (replace `\u003cpod-name\u003e`)\n- run netperf against the server `netperf -H \u003cserver-pod-IP\u003e -l 100 -t TCP_RR -- -o min_latency,mean_latency,max_latency` (replace `\u003cserver-pod-IP\u003e`)\n\n### container to container\n- get netperf pod `kubectl get pod -l app.kubernetes.io/name=netperf`\n- exec to a client container `kubectl exec -it \u003cpod-name\u003e -c client -- sh` (replace `\u003cpod-name\u003e`)\n- run netperf against the server `netperf -H 127.0.0.1 -l 100 -t TCP_RR -- -o min_latency,mean_latency,max_latency`\n\n## cleanup\n- daemonset\n  - client `kubectl delete ds netperf-client`\n  - server `kubectl delete deploy netperf-server`\n- single pod deployment `kubectl delete deploy netperf`\n\nIf you used kind cluster (setup sections), run `kind delete cluster --name netperf` as well\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpete911%2Fk8s-netperf-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpete911%2Fk8s-netperf-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpete911%2Fk8s-netperf-examples/lists"}