设置自动驱逐临时存储空间不足的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
阿里云首页 弹性容器实例 相关技术圈