自定义设置BCI Pod的最大Pending时长
更新时间:2025-02-06
Pending状态的BCI实例(BCI Pod)是不计费的,对于长时间处于Pending状态的异常Pod,如果您没有及时处理,可能会对业务产生异常影响。默认情况下,BCI实例的最大Pending时长为1小时,您可以根据实际业务情况自定义设置最大Pending时长,系统会自动终止超时的BCI实例,可以在一定程度上规避因没有及时处理异常Pod而造成业务异常影响。
功能说明
每个BCI实例相当于一个Pod。创建BCI Pod时,当对应的BCI实例进入等待创建(Pending)阶段,如果出现镜像拉取失败、Volume挂载失败等问题,BCI实例会一直处于Pending状态,但不会计费,您需要及时处理这类异常的CI实例来避免对业务产生异常影响。默认情况下,对于Pending时长超出1小时的BCI实例,系统会自动终止。如果您对于时长有要求,可以自定义设置最大Pending时长。
配置说明
您可以在Pod metadata中添加 bci.virtual-kubelet.io/bci-max-pending-minute 的Annotation来自定义设置Pod对应BCI实例的最大Pending时长。该Annotation的相关说明如下:
-
该Annotation的取值范围为10~1440的整数,单位为分钟,即下限为10分钟,上限为1天。
重要:请根据实际业务情况合理设置最大Pending时长。如果镜像过大且没有镜像缓存的情况下,创建Pod时需要一定的时长来拉取镜像,此时如果最大Pending时长设置过短,可能会导致Pod创建失败。
- 未添加该Annotation的情况下,默认的最大Pending时长为1小时。
配置示例
创建一个设置了最大Pending时长的BCI Pod
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx
labels:
app: nginx
annotations:
bci.virtual-kubelet.io/bci-max-pending-minute: "30" # 设置最大Pending时长为30分钟
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80