资源使用量是一个对于多集群系统非常重要的指标,但是不同多集群系统提供的上层服务不同,所以对各个系统来说资源的要求也会不同 。我们不对这个指标进行强制的限制 。集群注册时延是从集群注册到控制面到集群在联邦侧可用的时延 。它在某种程度上取决于控制面如何收集成员集群的状态 。测试工具ClusterLoader2ClusterLoader2 是一款开源 Kubernetes 集群负载测试工具,该工具能够针对 Kubernetes 定义的 SLIs/SLOs 指标进行测试,检验集群是否符合各项服务质量标准 。此外 ClusterLoader2 为集群问题定位和集群性能优化提供可视化数据 。ClusterLoader2 最终会输出一份 Kubernetes 集群性能报告,展示一系列性能指标测试结果 。然而,在 Karmada 性能测试的过程中,由于 ClusterLoader2 是一个为 Kubernetes 单集群定制的测试工具,且在多集群场景下它不能获取到所有集群的资源,因此我们只用 ClusterLoader2 来分发被 Karmada 管理的资源 。
PrometheusPrometheus 是一个开源的用于监控和告警的工具, 它包含数据收集、数据报告、数据可视化等功能 。在分析了 Clusterloader2 对各种监控指标的处理后,我们使用 Prometheus 根据具体的查询语句对控制面的指标进行监控 。
KindKind 是一个是用容器来运行 Kubernetes 本地集群的工具 。为了测试 Karmada 的应用分发能力,我们需要一个真实的单集群控制面来管理被联邦控制面分发的应用 。Kind 能够在节约资源的同时模拟一个真实的集群 。
Fake-kubeletFake-kubelet 是一个能模拟节点且能维护虚拟节点上的 Pod 的工具 。与 Kubemark 相比,fake-kubelet 只做维护节点和 Pod 的必要工作 。它非常适合模拟大规模的节点和 Pod 来测试控制面的在大规模环境下的性能 。
测试集群部署方案Kubernetes 控制面部署在单 master 的节点上 。etcd,kube-apiserver,kube-scheduler 和 kube-controller 以单实例的形式部署 。Karmada 的控制面组件部署在这个 master 节点上 。他们同样以单实例的形式部署 。所有的 Kubernetes 组件和 Karmada 组件运行在高性能的节点上,且我们不对他们限制资源 。我们通过 kind 来模拟单 master 节点的集群,通过 fake-kubelet 来模拟集群中的工作节点 。
测试环境信息控制面操作系统版本
Ubuntu 18.04.6 LTS (Bionic Beaver)
Kubernetes 版本
Kubernetes v1.23.10
Karmada 版本
Karmada v1.3.0-4-g1f13ad97
Karmada 控制面所在的节点配置
Architecture:x86_64CPU op-mode(s): 32-bit, 64-bitByte Order:Little EndianCPU(s): 64On-line CPU(s) list: 0-63Thread(s) per core: 2Core(s) per socket: 16Socket(s): 2NUMA node(s): 2Vendor ID: GenuineIntelCPU family: 6Model: 85Model name: Intel(R) Xeon(R) Gold 6266C CPU @ 3.00GHzStepping: 7CPU MHz: 3000.000BogoMIPS: 6000.00Hypervisor vendor: KVMVirtualization type: fullL1d cache: 32KL1i cache: 32KL2 cache: 1024KL3 cache: 30976KNUMA node0 CPU(s): 0-31NUMA node1 CPU(s): 32-63
Maximum Capacity: 512 GB
Disk /dev/vda: 200 GiB, 214748364800 bytes, 419430400 sectors组件参数配置
--max-requests-inflight=2000--max-mutating-requests-inflight=1000
- karmada-aggregated-server
--kube-api-qps=200--kube-api-burst=400
--kube-api-qps=200--kube-api-burst=400
- karmada-controller-manager
--kube-api-qps=200--kube-api-burst=400
--kube-api-qps=40--kube-api-burst=60
--quota-backend-bytes=8G测试执行在使用 Clusterloader2 进行性能测试之前,我们需要自己通过配置文件定义性能测试策略 。我们使用的配置文件如下:
unfold me to see the yaml
经验总结扩展阅读
-
2024年六月初十出生赖姓女孩名字叫什么好名字推荐
-
-
-
恋爱|一个女人的层次越低,越是喜欢这两种男人,少有例外
-
01引言爱情 爱情,是入骨的相思;爱情,是深入灵魂的欢喜
-
-
婚房|婚房价值300多万,女子不让大哥住家里,众人逼问下艰难说出原因
-
前段时间蒋丽的母亲去世了|儿媳逛街回家,看到丈夫正在给儿子做荷包蛋,发现母亲去世真相
-
-
-
-
-
-
2023年8月28日挖坟墓好吗 2023年农历七月十三宜挖坟墓吗
-
2023年6月11日适合开业做生意吗 2023年6月11日开业怎么样
-
2023年农历八月廿七疏通管道吉日 2023年10月11日疏通管道吉日一览表
-
化妆品科普 | 莫让美容变毁容 三招识别变质化妆品
-
我们年轻的时候 容纳世人遇见事情,学会宽容,方能体现大格局
-
苏庸子|心理学,长期单身的男人,身上这些“特征”很明显
-
婚姻好不好,从来都不是靠付出,无脑输出就是最大的傻子