自定义设置BCI Pod的最大Pending时长
更新时间:2025-02-08
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
                Plain Text
                
            
            1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  name: nginx
5  labels:
6    app: nginx
7spec:
8  replicas: 2
9  selector:
10    matchLabels:
11      app: nginx
12  template:
13    metadata:
14      name: nginx
15      labels:
16        app: nginx
17      annotations:
18        bci.virtual-kubelet.io/bci-max-pending-minute: "30"   # 设置最大Pending时长为30分钟
19    spec:
20      containers:
21      - name: nginx
22        image: nginx:1.7.9
23        ports:
24        - containerPort: 80