设置自动驱逐临时存储空间不足的Pod

本文介绍在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