ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

minikube v1.29.0 time-to-k8s 基准测试报告:启动耗时与 CPU 开销实测分析

minikube v1.29.0 time-to-k8s 基准测试报告:启动耗时与 CPU 开销实测分析 minikube v1.29.0 time-to-k8s 基准测试报告启动耗时与 CPU 开销实测分析【免费下载链接】minikubeRun Kubernetes locally项目地址: https://gitcode.com/gh_mirrors/mi/minikube导读本文是 minikube 官方持续基准测试time-to-k8s Benchmark在v1.29.0版本上的完整数据报告与解读。测试在 GitHub Actions 标准托管 RunnerLinux x86_64上执行将 minikube v1.29.0 与 kind v0.17.0、k3d v5.4.6 置于相同的评测脚本与硬件条件下从空机到 Kubernetes 集群成功对外服务的全流程视角对比三者耗时与 CPU 开销。读完本文你将掌握 minikube 官方基准测试的六个核心耗时指标与两个 CPU 指标的定义、v1.29.0 的具体实测数据、该数据在仓库中的生成方式以及如何结合 hack/benchmark/time-to-k8s 目录下的工具复现同类评测。v1.29.0 基准测试环境与对象该页面对应于仓库文档 v1.29.0.md由 page.go 中的 Go 模板自动生成。参与对比的三个工具及其版本如下对比对象版本信息minikubev1.29.0kindv0.17.0go1.19.2 linux/amd64k3dv5.4.6测试环境要点依据 daily_benchmark.md 中指向的 GitHub Actions 标准托管 Runner 说明运行平台Linux x86_64amd64公共仓库标准 Runner驱动与运行时Docker driver Docker runtimeminikube 以--driverdocker --container-runtimedocker --memorymax --cpusmax启动见 docker-docker-benchmark.yaml评测脚本time-to-k8s.sh 依次安装 kind、k3d 与通过make构建的本地 minikube随后运行go run . --config local-kubernetes.yaml --iterations 10 --output output.csv执行 10 轮迭代并输出 CSV。因此本文所有数据均为同一台机器、同一评测工具链下的横向对比结果可以直接用于观察三种工具在启动到可用阶段的相对差异但不代表不同硬件或虚拟化驱动如 VirtualBox下的表现。核心耗时指标定义与 v1.29.0 实测数据六个阶段指标的含义time-to-k8s 评测将从 0 到成功部署 Kubernetes拆解为六个可独立计时的阶段。从 chart.go 中的run结构体与 chart.go 输出的 Markdown 表字段可以确认其命名与顺序指标含义Command Exec执行启动命令如minikube start到命令返回的总耗时API Server AnsweringAPI Server 开始响应请求所花费的时间Kubernetes SVCKubernetes 服务kube-system 相关 Service就绪耗时DNS SVCDNS 服务kube-dns / coredns Service就绪耗时App Running测试应用进入 Running 状态耗时DNS Answering集群内 DNS 解析真正开始应答的耗时其中 Total 为六项之和见 chart.go 中total : cmdAvg apiAvg k8sAvg dnsSvcAvg appAvg dnsAnsAvg即从执行命令到 DNS 可应答的端到端总时长。v1.29.0 实测耗时表单位秒指标minikube v1.29.0kind v0.17.0k3d v5.4.6Command Exec28.55519.90414.527API Server Answering0.0700.0890.107Kubernetes SVC0.0630.0660.098DNS SVC0.0610.0660.091App Running15.34923.40215.192DNS Answering8.6990.6313.407Total52.79744.15833.422数据解读要点minikube 的耗时大头集中在 Command Exec28.555s与 DNS Answering8.699s两个阶段前者包含虚拟机/容器启动、系统初始化与 kubeadm 引导等全套流程后者反映集群内 DNS 从服务就绪到真正可解析的收敛时间。kind 的 App Running 耗时23.402s是三组中最高的但其 DNS Answering 仅 0.631s说明各工具的时间分布结构差异明显单看 Total 会掩盖阶段差异。k3d 在 Command Exec 上优势最大14.527s总耗时 33.422s 为三者最低从源码结构看k3d 的镜像预置与轻量引导方式直接在 Docker 内运行 k3s与 minikube 基于 kicbase 节点镜像、完整 kubeadm 初始化的路径不同这是阶段耗时结构差异的重要原因。数据均来自 10 次迭代的平均值--iterations 10并由 chart.go 计算平均值后落表单次抖动已被平滑。CPU 开销指标与实测数据除耗时外评测还记录了启动全程的 CPU 使用情况两个指标定义如下见 chart.go 中cpu结构体指标含义CPU Utilization(%)启动全程平均 CPU 利用率百分比CPU Time(seconds)累计消耗的 CPU 时间秒v1.29.0 实测 CPU 数据指标minikube v1.29.0kind v0.17.0k3d v5.4.6CPU Utilization(%)36.17545.63946.976CPU Time(seconds)18.11920.13015.710解读minikube v1.29.0 的平均 CPU 利用率36.175%在三者中最低说明其启动流程对 CPU 的占用更平缓kind 与 k3d 的利用率接近约 45%47%。CPU 时间方面 k3d 最低15.710s与它的启动总耗时最低相一致minikube 为 18.119s介于两者之间。由于三者的启动总耗时不同利用率低并不直接等同于更快——minikube 用时更长但平均占用更分散这正是把耗时与CPU两套指标并列展示的意义。数据从何而来仓库内的自动化生成链路v1.29.0 基准页并非手工撰写而是由仓库内一套完整的评测 → 绘图 → 生成页面流水线产出读者可沿以下路径自行查阅与复现执行评测time-to-k8s.sh先安装 kind、k3d再用make构建当前版本 minikube最后在 time-to-k8s-repo 子模块中执行go run . --config local-kubernetes.yaml --iterations 10 --output output.csv收集 10 轮数据到 CSV解析 CSVchart.go中readInCSVchart.go跳过首行表头取第 816 列作为六项耗时与两项 CPU 指标按 minikube/kind/k3d 分组存储计算平均值对每组多次运行求和后取平均并累加出 Totalchart.go生成图表与 Markdown 表格createChartchart.go用 gonum/plot 绘制堆叠柱状图六阶段叠加、Total 数值标注于柱顶cpu.go中的createCPUChartcpu.go绘制 CPU 分组柱状图outputMarkdownTable与cpuMarkdownTable分别生成两张 Markdown 表渲染页面page.go通过 Go 模板page.go将版本号、时间表格、CPU 表格与两张图片组装为形如v1.29.0.md的页面文件图片输出至site/static/images/benchmarks/timeToK8s/目录weight字段取当天日期用于文档排序。time-to-k8s.sh末尾的create_page $VERSION即一次调用go run ./hack/benchmark/time-to-k8s/*.go --csv ... --image ... --page ...完成图表与页面生成随后清理 CSV 临时文件。整个链路说明该页面数据可随每次版本发布自动更新读者看到的 v1.29.0 数据即该流程在该版本上的产物。图表速览上图标题为 Time to go from 0 to successful Kubernetes deploymentX 轴依次为 minikube v1.29.0、kind v0.17.0、k3d v5.4.6六种颜色分别对应 Command Exec红、API Server Answering、Kubernetes SVC、DNS SVC、App Running紫、DNS Answering棕六个阶段柱顶数字即各工具 Total 耗时与上文表格完全对应。上图标题为 CPU utilization to go from 0 to successful Kubernetes deploymentX 轴为 CPU Utilization(%) 与 CPU Time(seconds) 两组指标三色柱分别代表 minikube、kind、k3d直观呈现三者 CPU 开销差异。两张图均由 chart.go 与 cpu.go 中的绘图逻辑自动生成是本文表格数据的可视化对应物。如何理解与使用这份基准数据横向对比的适用前提本数据只代表Docker driver Docker runtime、Linux x86_64 托管 Runner这一种典型场景。若换用 VirtualBox 等驱动结果会显著不同仓库为此提供了 virtualbox-docker-benchmark.yaml 与 virtualbox-containerd-benchmark.yaml 等评测配置。读者不应将单组数据外推为所有环境下的结论。关注阶段分布而非只看 Totalminikube 的 Total52.797s高于 kind44.158s与 k3d33.422s但其 API Server、Kubernetes SVC、DNS SVC 三个阶段均快于另外两者慢主要体现在 Command Exec 与 DNS Answering。若你的场景关注集群内部服务就绪速度minikube 的表现并不差。与其他版本对比仓库的 timeToK8s 目录 按版本归档了 v1.20.0 至 v1.36.0 的全部基准页可用于观察 minikube 随版本迭代的耗时变化趋势daily_benchmark.md 则提供 Docker/VirtualBox × Docker/containerd 四种组合的每日基准图。自行复现可参考 time-to-k8s.sh 的步骤在具备 Docker 的 Linux 主机上安装 kind、k3d 与本地构建的 minikube以--iterations 10运行评测并生成 CSV再用go run ./hack/benchmark/time-to-k8s/*.go产出属于你自己环境的图表与页面。小结v1.29.0 基准页完整呈现了 minikube 在该版本上的启动耗时画像Total 52.797s其中命令执行28.555s与 DNS 应答8.699s为主要耗时来源CPU 平均利用率 36.175%、累计 CPU 时间 18.119s均为三者中较低或居中水平。该数据由仓库内置的 time-to-k8s 评测流水线在统一环境下自动产出既可作为 minikube 版本间性能演进的参照锚点也为开发者选择本地 Kubernetes 工具时提供了耗时 资源开销双维度的量化依据。【免费下载链接】minikubeRun Kubernetes locally项目地址: https://gitcode.com/gh_mirrors/mi/minikube创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表