设置自动驱逐临时存储空间不足的Pod
本文介绍Kubernetes场景下如何设置自动驱逐临时存储空间不足的ECI Pod,避免因Pod临时存储空间不足而影响业务运行。
适用场景
本文适用于Kubernetes场景,请确保您已完成Kubernetes与ECI的对接工作。相关参考如下:
功能说明
默认情况下,当ECI Pod的临时存储空间不足时,系统不会做任何处理,可能会影响业务运行。基于Kubernetes的驱逐和调度机制,ECI支持为Pod添加k8s.aliyun.com/eci-eviction-enable: "true"
的Annotation,实现在某一ECI Pod的临时存储空间不足(低于100 MiB)时,自动驱逐该Pod(Pod的状态将变更为Failed)。
一般情况下,业务应用部署在Deployment上。如果被驱逐的Pod由Deployment管理,Deployment会自动创建新的Pod,如下图所示。
配置示例
配置时,k8s.aliyun.com/eci-eviction-enable: "true"
的Annotation需添加在Pod的metadata下。例如配置Deployment时,Annotation需添加在spec>template>metadata下。YAML示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 4
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
annotations:
k8s.aliyun.com/eci-eviction-enable: "true" #设置自动驱逐临时存储空间不足的Pod
labels:
app: nginx
alibabacloud.com/eci: "true"
spec:
containers:
- name: nginx
image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2