本文介绍在Kubernetes集群中,如何设置自动驱逐临时存储空间不足的ECI Pod,避免因Pod临时存储空间不足而影响业务运行。
配置说明
默认情况下,当ECI Pod的临时存储空间不足时,系统不会做任何处理,可能会影响业务运行。基于Kubernetes的驱逐和调度机制,ECI支持为Pod添加k8s.aliyun.com/eci-eviction-enable: "true"
的Annotation,实现在某一ECI Pod的临时存储空间不足(低于100 MiB)时,自动驱逐该Pod(Pod的状态将变更为Failed)。
重要
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。
一般情况下,业务应用部署在Deployment上。如果被驱逐的Pod由Deployment管理,Deployment会自动创建新的Pod,如下图所示。
配置示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
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.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2