在K8s中,Pod临时存储指存储在节点上的空间,用于临时存放运行时的数据。通过配置临时存储额度,能够避免单个Pod过度消耗磁盘空间,影响节点中其他Pod的性能。本文介绍在变更应用时如何配置Pod的临时存储预留量和限制量,确保合理分配和使用集群中的资源。
背景信息
在K8s中,临时存储(即Ephemeral Storage)是指与一个Pod绑定的短暂性磁盘存储。它的生命周期与Pod保持一致。当Pod被删除或迁移时,与其关联的临时存储空间也会被释放。因此,在临时存储空间存储的数据不具备持久性。
如果Pod的临时存储没有限制额度,可能导致部分容器很快将磁盘写满,进而影响节点其他Pod和节点本身的正常运行。为避免该情况,当节点磁盘资源不足时,节点Kubelet将驱逐某些Pod,以释放资源,防止整个系统受到影响。
同时,K8s支持配置每个Pod可以使用的临时存储的预留量(Request)和限制量(Limit),确保分配给Pod的节点上有足够的磁盘资源,防止磁盘资源被过度消耗。
预留量(Request):表示为该Pod分配的最小磁盘资源。当调度器(Scheduler)将Pod分配给节点时,它会确保节点上有足够的可用临时存储以满足Pod的请求。配置预留量(Request)可以确保Pod在分配到节点时有足够的磁盘资源,从而避免因磁盘压力而导致性能下降。
限制量(Limit):表示Pod可以使用的最大磁盘资源。当Pod临时存储的使用超过限制时,会受到磁盘驱逐(Eviction)的影响。配置限制量(Limit)可以避免Pod过度消耗磁盘资源,从而影响其他Pod或导致整个节点磁盘空间耗尽。
说明限制量(Limit)不能小于预留量(Request)。
使用场景
临时存储常用于以下场景:
存储容器的文件系统。
存储容器日志。
提供一个可共享的空目录,以供多个容器使用(EmptyDir卷)。
操作步骤
您可在创建应用、部署应用以及变更规格时,为Pod配置临时存储额度。
请根据业务实际需求为Pod配置临时存储额度。如果您需要限额,请填写具体的数字,使用默认值0则代表不限额。没有配额限制,上限取决于集群性能。
创建应用
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域,并在页面上方选择微服务空间。
在应用列表页面,单击创建应用。
在应用基本信息页签,选择集群类型为Kubernetes集群,然后单击下一步。
在应用配置页签,配置单Pod资源配额的Ephemeral-Storage 资源预留(GB)和Ephemeral-Storage 资源限制(GB)。
部署应用
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。
在应用总览页面右上角,选择 。
选择部署模式后,在发布页面,配置单Pod资源配额的Ephemeral-Storage 资源预留(GB)和Ephemeral-Storage 资源限制(GB)。
变更规格
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。
在应用总览页面的部署规格区域,单击临时存储右侧的图标,在变更规格对话框,配置Ephemeral-Storage(GB)的资源预留和资源限制值。
相关文档
创建或部署应用时,其他功能的参数配置,请参见使用默认应用来源创建K8s应用。