选择合适的节点数据盘大小 约束与限制 仅1.19及以上集群支持调小容器运行时和Kubelet组件使用的数据盘容量。 调整数据盘大小功能只支持云硬盘,不支持本地盘(本地盘仅在节点规格为“磁盘增强型”或“超高I/O型”时可选)。 如何选择合适的数据盘 在选择合适的数据盘大小时,需要结合以下考虑综合计算: 在拉取镜像过程中,会先从镜像仓库中下载镜像tar包然后解压,最后删除tar包保留镜像文件。在tar包的解压过程中,tar包和解压出来的镜像文件会同时存在,占用额外的存储空间,需要在计算所需的数据盘大小时额外注意。 在集群创建过程中,节点上可能会部署必装插件(如Everest插件、coredns插件等),这些插件会占用一定的空间,在计算数据盘大小时,需要为其预留大约2G的空间。 在应用运行过程中会产生日志,占用一定的空间,为保证业务正常运行,需要为每个Pod预留大约1G的空间。 OverlayFS类型 OverlayFS类型节点上的容器引擎和容器镜像空间默认占数据盘空间的90%(建议维持此值),这些容量全部用于dockersys分区,计算公式如下: 容器引擎和容器镜像空间:默认占数据盘空间的90%,其空间大小 数据盘空间 90% dockersys分区(/var/lib/docker路径):容器引擎和容器镜像空间(默认占90%)都在/var/lib/docker目录下,其空间大小 数据盘空间 90% Kubelet组件和EmptyDir临时存储:占数据盘空间的10%,其空间大小 数据盘空间 10% 在OverlayFS类型的节点上,由于拉取镜像时,下载tar包后会存在解压过程,该过程中tar包和解压出来的镜像文件会同时存在于dockersys空间,会占用约2倍的镜像实际容量大小,等待解压完成后tar包会被删除。因此,在实际镜像拉取过程中,除去系统插件镜像占用的空间后,需要保证dockersys分区的剩余空间大于2倍的镜像实际容量。为保证容器能够正常运行,还需要在dockersys分区预留出相应的Pod容器空间,用于存放容器日志等相关文件。 因此在选择合适的数据盘时,需满足以下公式: dockersys分区容量 > 2镜像实际总容量 + 系统插件镜像总容量(约2G) + 容器数量 单个容器空间(每个容器需预留约1G日志空间) 说明 当容器日志选择默认的json.log形式输出时,会占用dockersys分区,若容器日志单独设置持久化存储,则不会占用dockersys空间,请根据实际情况估算单个容器空间。 例如:假设节点的存储类型是OverlayFS,节点数据盘大小为20G。根据上述计算公式,默认的容器引擎和容器镜像空间比例为90%,则dockersys分区盘占用:20G90% 18G,且在创建集群时集群必装插件可能会占用2G左右的空间。倘若此时您需要部署10G的镜像tar包,但是由于解压tar包时大约会占用20G的dockersys空间,再加上必装插件占用的空间,超出了dockersys剩余的空间大小,极有可能导致镜像拉取失败。