此处主要介绍如何测试k8s集群的dns解析性能,更加深入学习了解k8s。
检查coredns版本
kubectl get deployments coredns -n kube-system -o jsonpath='{$.spec.template.spec.containers[0].image}'
检查coredns配置文件
kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}'
检查coredns资源配置
kubectl get deployments coredns -n kube-system -o jsonpath='{$.spec.template.spec.containers[0].resources}'
部署基准测试
kubectl apply -f https://raw.githubusercontent.com/guessi/dnsperf-bench/master/k8s-dnsperf-bench.yaml
configmap/dns-records-config created
deployment.apps/dnsperf created
检查k8s集群dns
kubectl get service kube-dns -n kube-system -o jsonpath='{$.spec.clusterIP}'
修改deploy中的dns为本地的
kubectl edit deployment dnsperf
检查基准测试结果
kubectl logs -f deployments/dnsperf
DNS Performance Testing Tool
Version 2.14.0
[Status] Command line: dnsperf -f any -m udp -s 223.5.5.5 -p 53 -d /opt/records.txt -c 1 -T 1 -l 30 -t 5 -Q 100000
[Status] Sending queries (to 223.5.5.5:53)
[Status] Started at: Thu Apr 1 10:47:46 2024
[Status] Stopping after 30.000000 seconds
[Status] Testing complete (time limit)
Statistics:
Queries sent: 517317
Queries completed: 517317 (100.00%)
Queries lost: 0 (0.00%)
Response codes: NOERROR 517317 (100.00%)
Average packet size: request 43, response 160
Run time (s): 30.004152
Queries per second: 17241.513774
Average Latency (s): 0.004805 (min 0.000101, max 0.029327)
Latency StdDev (s): 0.002537
DNS Performance - Compare the speed and uptime of enterprise and commercial DNS services | DNSPerf