请将以下分区挂载在专用磁盘或 LVM 配置的逻辑卷上,以便后续扩展。
| 分区 | 最小大小 | 推荐大小 | 备注 |
|---|---|---|---|
| /var/lib/etcd | 10GB | 20GB | 建议使用专用的高IO磁盘来存放 etcd 数据。 |
| /var/lib/containerd/ | 100GB | 150GB | |
| /cpaas/ | global 集群控制平面节点至少 100GB; 其他节点至少 40GB | 200GB | 如果预计 infra 节点组件需要更多 /cpaas/ 空间,请规划额外空间。 |
| / | 50GB | 100GB,越大越好 | 确保有足够的空闲磁盘空间,使利用率保持在 80% 以下。如果使用率超过该阈值,节点上的 Pod 可能会被驱逐。 |
| 用于下载和解压安装包、扩展等的任意位置 | 20GB | 250GB | 实际存储需求取决于计划安装的扩展。 如果预计后续添加更多组件或启用额外功能,请规划额外空间。 |
快速存储对于 etcd 的可靠性能至关重要。etcd 依赖持久、低延迟的磁盘操作来将提案持久化到其预写日志(WAL)。
如果磁盘写入耗时过长,fsync 延迟可能导致成员错过心跳,无法及时提交提案,并出现请求超时或临时领导者变更。这些问题也会减慢 Kubernetes API 并降低整个集群的响应速度。
总之,HDD 是不理想的选择,不推荐使用。如果必须使用 HDD 作为 etcd 存储,请选择最快的(例如 15,000 RPM)。
以下硬盘实践可提供最佳的 etcd 性能:
优先使用 SSD 或 NVMe 作为 etcd 磁盘。当写入耐久性和稳定性为优先考虑时,建议使用服务器级单层单元(SLC)SSD。避免使用 NAS、SAN 和 HDD。
避免使用分布式块存储系统,如 Ceph RADOS Block Device (RBD)、网络文件系统 (NFS) 及其他网络附加后端,因为它们会引入不可预测的延迟。
将 etcd 数据保存在专用磁盘或专用逻辑卷上。
持续使用 fio 等工具进行基准测试,并利用结果跟踪集群增长时的性能。更多信息请参见 磁盘基准测试指南。
| 规格 | 最低要求 | 推荐 | 备注 |
|---|---|---|---|
| 顺序写入 IOPS | 50 | 500(越高越好) | 大多数云服务商公布的是并发 IOPS,而非顺序 IOPS。并发 IOPS 通常约为顺序 IOPS 的 10 倍。 |
| 磁盘带宽 | 10 MB/s | 100 MB/s(越高越好) | 更高的磁盘带宽可加快故障成员追赶集群时的数据恢复速度。 |
吞吐量(顺序 8 kB 写入并执行 fdatasync) | 50 次写入/10 毫秒 | 500 次写入/2 毫秒 | 反映每次写入操作后数据刷新到磁盘时的持续写入吞吐量。 |
为测量实际的顺序 IOPS 和吞吐量,建议使用磁盘基准测试工具 fio。可参考以下操作说明:
请勿在 集群的任何节点上运行这些测试。
请在与控制平面节点配置相同的专用虚拟机上运行测试。\