1. ephemeral-storage介绍
Kubernetes在1.8的版本中引入了一种类似于CPU,RAM的新的资源模式:ephemeral-storage属性(直译为临时存储),并且在1.10的版本kubelet默认启用了这个特性。
ephemeral-storage实现了对Pod应用存储资源的管理,可以有效的降低Pod应用失控消耗完 node磁盘空间的风险。官网中对该属性的描述如下:
(https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/):
从上述官网介绍,总结如下:
临时存储:临时的含义是指容器内的数据未做持久化处理,生命周期和容器一致。
作用对象:容器日志(/var/log)、EmptyDir类型的volume数据(/var/lib/kubelet)、镜像层和容器可写层(/var/lib/docker)。由此可见,基本覆盖了Pod各个方面的磁盘消耗。
管理的文件系统:ephemeral-storage对kubelet的根目录(默认是/var/lib/kubelet)所在的节点分区(文件系统)进行管理,即如果把/var/lib/docker独立分区,ephemeral-storage将不对/var/lib/docker目录进行管理。
Pod调度流程:节点上的kubelet启动的时候,kubelet会统计当前节点的kubelet分区的可分配的磁盘资源,或者你可以覆盖节点上kubelet的配置来自定义可分配的资源。在创建Pod时会根据存储需求调度到满足存储的节点,在Pod使用超过限制的存储时会对其做驱逐的处理来保证不会耗尽节点上的磁盘空间。
2. ephemeral-storage功能验证
2.1 环境准备
虚拟机配置
1) 规格:16 vCpu + 80 GB RAM + 1000 GB 磁盘
2) 分区:/var/lib/docker、/var/lib/kubelet/和/var/log全在同一个系统分区上
测试容器镜像
1) Dockerfile
FROM ubuntu:16.04ADD start.sh /home/RUN mkdir -p /lq/log/ENTRYPOINT /home/start.sh
相关推荐
- 暂无文章
评论前必须登录!
注册