最近更新时间:2024-02-23 14:27:05
在Kubernetes集群中,可以通过设置自动驱逐临时存储空间不足的KCI Pod,避免因Pod临时存储空间不足而影响业务运行。
默认情况下,当KCI Pod的临时存储空间不足时,系统不会做任何处理,可能会影响业务运行。基于Kubernetes的驱逐和调度机制,KCI支持为Pod添加k8s.ksyun.com/kci-eviction-enable: "true"
的Annotation,实现在某一KCI Pod的临时存储空间不足(低于100 MiB)时,自动驱逐该Pod(Pod的状态将变更为Failed)。
1. Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
2. 支持在创建KCI Pod后,更新KCI Pod添加该Annotation。
一般情况下,业务应用部署在Deployment上。如果被驱逐的Pod由Deployment管理,Deployment会自动创建新的Pod。由其他控制器管理的Pod,视实际控制器逻辑而定,对于不会自动重建的场景,不建议配置该annotation。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-rbkci
namespace: default
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
annotations:
k8s.ksyun.com/kci-eviction-enable: "true"
labels:
app: nginx
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: type
operator: In
values:
- virtual-kubelet
containers:
- name: nginx
image: nginx:latest
tolerations:
- key: rbkci-virtual-kubelet.io/provider
value: kingsoftcloud
effect: NoSchedule
纯净模式