我有一个包含 2 个节点的集群,每个节点有 10 Gb 的启动 SSD 磁盘和 375 Gb 的本地 SSD。我担心启动 SSD 磁盘已满时,GKE 会在本地 SSD 中部署无状态 pod 还是会抱怨没有空间?
换句话说,本地 SSD 仅供我明确使用还是 GKE 可以根据自己的需要使用它?
答案1
在kubelet 文档你可以找到这个标志:
--根目录字符串
用于管理 kubelet 文件(卷挂载等)的目录路径。(默认“/var/lib/kubelet”)
此标志设置了 kubelet 存储机密和一些卷挂载的位置,因此如果空间不足,k8s 可能会在创建 pod 时失败。
还有另外一条路,这条路是docker 特定。它调用了data-root
,可以找到更多信息这里。它默认为/var/lib/docker
并存储所有容器的文件。因此,如果磁盘空间不足,您将无法创建容器文件,并且启动新容器将失败。
--数据根是存储持久数据(例如镜像、卷和集群状态)的路径。默认值为 /var/lib/docker。
结论: 如果您有自托管集群,您只需更改默认值即可,一切正常,但由于您使用的是托管 k8s 集群 (GKE),因此您所能做的就是使用更大的启动磁盘。此外:不,k8s 不会自动使用其他磁盘(至少据我所知)。