Volcano调度器
插件简介
Volcano是一个基于Kubernetes的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要而Kubernetes当前缺失的一系列特性。
Volcano提供了高性能任务调度引擎、高性能异构芯片管理、高性能任务运行管理等通用计算能力,通过接入AI、大数据、基因、渲染等诸多行业计算框架服务终端用户,最大支持1000Pod/s的调度并发数,轻松应对各种规模的工作负载,大大提高调度效率和资源利用率。
Volcano针对计算型应用提供了作业调度、作业管理、队列管理等多项功能,主要特性包括:
- 丰富的计算框架支持:通过CRD提供了批量计算任务的通用API,通过提供丰富的插件及作业生命周期高级管理,支持TensorFlow,MPI,Spark等计算框架容器化运行在Kubernetes上。
- 高级调度:面向批量计算、高性能计算场景提供丰富的高级调度能力,包括成组调度,优先级抢占、装箱、资源预留、任务拓扑关系等。
- 队列管理:支持分队列调度,提供队列优先级、多级队列等复杂任务调度能力。
目前Volcano项目已经在Github开源,项目开源地址:https://github.com/volcano-sh/volcano
本文介绍如何在CCE集群中安装及配置Volcano插件,具体使用方法请参见Volcano调度。
在使用Volcano作为调度器时,建议将集群中所有工作负载都使用Volcano进行调度,以避免多调度器同时工作导致的一些调度资源冲突问题。
安装插件
- 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到Volcano调度器,单击“安装”。
- 在安装插件页面,根据需求选择“规格配置”。
- 选择“系统预置规格”时,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
- 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。
其中volcano-admission组件的资源配额设置与集群节点和Pod规模无关,可保持默认值。而volcano-controller和volcano-scheduler组件的资源配额设置与集群节点和Pod规模相关,其建议值如下:
- 小于100个节点,可使用默认配置,即CPU的申请值为500m,限制值为2000m;内存的申请值为500Mi,限制值为2000Mi。
- 高于100个节点,每增加100个节点(10000个Pod),建议CPU的申请值增加500m,内存的申请值增加1000Mi;CPU的限制值建议比申请值多1500m,内存的限制值建议比申请值多1000Mi。
申请值推荐计算公式:
- CPU申请值:计算“目标节点数 * 目标Pod规模”的值,并在表1中根据“集群节点数 * Pod规模”的计算值进行插值查找,向上取最接近规格的申请值及限制值。
例如2000节点和2w个Pod的场景下,“目标节点数 * 目标Pod规模”等于4000w,向上取最接近的规格为700/7w(“集群节点数 * Pod规模”等于4900w),因此建议CPU申请值为4000m,限制值为5500m。
- 内存申请值:建议每1000个节点分配2.4G内存,每1w个Pod分配1G内存,二者叠加进行计算。(该计算方法相比表1中的建议值会存在一定的误差,通过查表或计算均可)
即:内存申请值 = 目标节点数/1000 * 2.4G + 目标Pod规模/1w * 1G。
例如2000节点和2w个Pod的场景下,内存申请值 = 2 * 2.4G + 2 * 1G = 6.8G
- CPU申请值:计算“目标节点数 * 目标Pod规模”的值,并在表1中根据“集群节点数 * Pod规模”的计算值进行插值查找,向上取最接近规格的申请值及限制值。
表1 volcano-controller和volcano-scheduler的建议值 集群节点数/Pod规模
CPU Request(m)
CPU Limit(m)
Memory Request(Mi)
Memory Limit(Mi)
50/5k
500
2000
500
2000
100/1w
1000
2500
1500
2500
200/2w
1500
3000
2500
3500
300/3w
2000
3500
3500
4500
400/4w
2500
4000
4500
5500
500/5w
3000
4500
5500
6500
600/6w
3500
5000
6500
7500
700/7w
4000
5500
7500
8500
- 设置插件支持的“扩展功能”。
- 重调度:启用后,默认部署volcano-descheduler组件,调度器根据您的策略配置驱逐和重新调度不符合要求的pod,实现集群负载均衡或减少资源碎片的效果。详情请参见重调度(Descheduler)。
- 在离线业务混部:启用后,开启混部能力的节点池默认部署volcano-agent组件,通过节点QoS保障、CPU Burst和动态资源超卖等方式提升资源利用率,为您降低资源使用成本。详情请参见开启云原生混部。
- NUMA拓扑调度:启用后,默认部署resource-exporter组件,调度器按照NUMA亲和的方式调度工作负载,提高高性能训练作业性能。详情请参见NUMA亲和性调度。
- 设置插件实例的部署策略。
- 调度策略对于DaemonSet类型的插件实例不会生效。
- 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
表2 插件调度配置 参数
参数说明
多可用区部署
- 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
- 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。
节点亲和
容忍策略
容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。
插件会对实例添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。
详情请参见设置容忍策略。
- 单击“安装”。
插件安装完成后,您可以单击左侧导航栏的“配置中心”,切换至“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,您可以结合实际业务场景定制专属的高阶调度策略。示例如下:
colocation_enable: '' default_scheduler_conf: actions: 'allocate, backfill, preempt' tiers: - plugins: - name: 'priority' - name: 'gang' - name: 'conformance' - name: 'lifecycle' arguments: lifecycle.MaxGrade: 10 lifecycle.MaxScore: 200.0 lifecycle.SaturatedTresh: 1.0 lifecycle.WindowSize: 10 - plugins: - name: 'drf' - name: 'predicates' - name: 'nodeorder' - plugins: - name: 'cce-gpu-topology-predicate' - name: 'cce-gpu-topology-priority' - name: 'cce-gpu' - plugins: - name: 'nodelocalvolume' - name: 'nodeemptydirvolume' - name: 'nodeCSIscheduling' - name: 'networkresource' tolerations: - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 60 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 60
表3 Volcano高级配置参数说明 插件
功能
参数说明
用法演示
colocation_enable
是否开启混部能力。
参数值:
- true:表示开启混部。
- false:表示不开启混部。
-
default_scheduler_conf
负责Pod调度的组件配置,由一系列action和plugin组成。具有高度的可扩展性,您可以根据需要实现自己的action和plugin。
主要包括actions和tiers两部分:
- actions:定义调度器需要执行的action类型及顺序。
- tiers:配置plugin列表。
-
actions
定义了调度各环节中需要执行的动作,action的配置顺序就是scheduler的执行顺序。详情请参见Actions。
调度器会遍历所有的待调度Job,按照定义的次序依次执行enqueue、allocate、preempt、backfill等动作,为每个Job找到一个最合适的节点。
支持的参数值:
- enqueue:负责通过一系列的过滤算法筛选出符合要求的待调度任务并将它们送入待调度队列。经过这个action,任务的状态将由pending变为inqueue。
- allocate:负责通过一系列的预选和优选算法筛选出最适合的节点。
- preempt:负责根据优先级规则为同一队列中高优先级任务执行抢占调度。
- backfill:负责将处于pending状态的任务尽可能的调度下去以保证节点资源的最大化利用。
actions: 'allocate, backfill, preempt'
说明:配置action时,preempt和enqueue不可同时使用。
plugins
根据不同场景提供了action中算法的具体实现细节,详情请参见Plugins。
支持的参数值请参见表4。
-
tolerations
插件实例对节点污点的容忍度设置。
默认配置下,插件实例可以运行在拥有“node.kubernetes.io/not-ready”或“node.kubernetes.io/unreachable”污点,且污点效果值为NoExecute的节点上,但会在60秒后被驱逐。
tolerations: - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 60 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 60
表4 支持的Plugins列表 插件
功能
参数说明
用法演示
binpack
将Pod调度到资源使用较高的节点(尽量不往空白节点分配),以减少资源碎片。
arguments参数:
- binpack.weight:binpack插件本身在所有插件打分中的权重。
- binpack.cpu:CPU资源在所有资源中的权重,默认是1。
- binpack.memory:内存资源在所有资源中的权重,默认是1。
- binpack.resources:Pod请求的其他自定义资源类型,例如nvidia.com/gpu。可添加多个并用英文逗号隔开。
- binpack.resources.<your_resource>:自定义资源在所有资源中的权重,可添加多个类型的资源,其中<your_resource>为binpack.resources参数中定义的资源类型。例如binpack.resources.nvidia.com/gpu。
- plugins: - name: binpack arguments: binpack.weight: 10 binpack.cpu: 1 binpack.memory: 1 binpack.resources: nvidia.com/gpu, example.com/foo binpack.resources.nvidia.com/gpu: 2 binpack.resources.example.com/foo: 3
conformance
跳过关键Pod(比如在kube-system命名空间的Pod),防止这些Pod被驱逐。
-
- plugins: - name: 'priority' - name: 'gang' enablePreemptable: false - name: 'conformance'
lifecycle
通过统计业务伸缩的规律,将有相近生命周期的Pod优先调度到同一节点,配合autoscaler的水平扩缩容能力,快速缩容释放资源,节约成本并提高资源利用率。
1. 统计业务负载中Pod的生命周期,将有相近生命周期的Pod调度到同一节点
2. 对配置了自动扩缩容策略的集群,通过调整节点的缩容注解,优先缩容使用率低的节点
arguments参数:- lifecycle.WindowSize:为int型整数,不小于1,默认为10。
记录副本数变更的次数,负载变化规律、周期性明显时可适当调低;变化不规律,副本数频繁变化需要调大。若过大会导致学习周期变长,记录事件过多。
- lifecycle.MaxGrade:为int型整数,不小于3,默认为3。
副本分档数,如设为3,代表分为高中低档。负载变化规律、周期性明显时可适当调低;变化不规律,需要调大。若过小会导致预测的生命周期不够准确。
- lifecycle.MaxScore:为float64浮点数,不小于50.0,默认为200.0。
- lifecycle.SaturatedTresh:为float64浮点数,小于0.5时取值为0.5;大于1时取值为1,默认为0.8。
- plugins: - name: priority - name: gang enablePreemptable: false - name: conformance - name: lifecycle arguments: lifecycle.MaxGrade: 3 lifecycle.MaxScore: 200.0 lifecycle.SaturatedTresh: 0.8 lifecycle.WindowSize: 10
说明:- 对不希望被缩容的节点,需要手动标记长周期节点,为节点添加volcano.sh/long-lifecycle-node: true的annotation。对未标记节点,lifecycle插件将根据节点上负载的生命周期自动标记。
- MaxScore默认值200.0相当于其他插件权重的两倍,当lifecycle插件效果不明显或与其他插件冲突时,需要关闭其他插件,或将MaxScore调大。
- 调度器重启后,lifecycle插件需要重新记录负载的变化状况,需要统计数个周期后才能达到最优调度效果。
gang
将一组Pod看做一个整体进行资源分配。观察Job下的Pod已调度数量是否满足了最小运行数量,当Job的最小运行数量得到满足时,为Job下的所有Pod执行调度动作,否则,不执行。
说明:使用gang调度策略时,当集群剩余的资源大于等于Job的最小运行数量的1/2、但小于Job的最小运行数量时,不会触发autoscaler扩容。
- enablePreemptable:
- true:表示开启抢占。
- false:表示不开启抢占。
- enableJobStarving:
- true: 表示按照Job的minAvailable进行抢占。
- false:表示按照Job的replicas进行抢占。
说明:- Kubernetes原生工作负载(如Deployment)的minAvailable默认值为1,建议配置enableJobStarving: false。
- AI大数据场景,创建vcjob时可指定minAvailable值,推荐配置enableJobStarving: true。
- Volcano 1.11.5之前的版本enableJobStarving默认为true,1.11.5之后的版本默认配置为false。
- plugins: - name: priority - name: gang enablePreemptable: false enableJobStarving: false - name: conformance
priority
根据自定义的负载优先级进行调度。
-
- plugins: - name: priority - name: gang enablePreemptable: false - name: conformance
overcommit
将集群的资源放到一定倍数后调度,提高负载入队效率。负载都是deployment的时候,建议去掉此插件或者设置扩大因子为2.0。
说明:该插件在Volcano 1.6.5及以上版本中支持使用。
arguments参数:
- overcommit-factor:扩大因子,默认是1.2。
- plugins: - name: overcommit arguments: overcommit-factor: 2.0
drf
DRF调度算法(Dominant Resource Fairness)可以根据作业使用的主导资源份额进行调度,资源份额较小的作业将具有更高优先级。
-
- plugins: - name: 'drf' - name: 'predicates' - name: 'nodeorder'
predicates
预选节点的常用算法,包括节点亲和、Pod亲和、污点容忍、Node重复,volume limits,volume zone匹配等一系列基础算法。
-
- plugins: - name: 'drf' - name: 'predicates' - name: 'nodeorder'
nodeorder
优选节点的常用算法,通过模拟分配从各个维度为节点打分,找到最适合当前作业的节点。
打分参数:
- nodeaffinity.weight:节点亲和性优先调度,默认值是2。
- podaffinity.weight:Pod亲和性优先调度,默认值是2。
- leastrequested.weight:资源分配最少的节点优先,默认值是1。
- balancedresource.weight:节点上面的不同资源分配平衡的优先,默认值是1。
- mostrequested.weight:资源分配最多的节点优先,默认值是0。
- tainttoleration.weight:污点容忍高的优先调度,默认值是3。
- imagelocality.weight:节点上面有Pod需要镜像的优先调度,默认值是1。
- podtopologyspread.weight:Pod拓扑调度,默认值是2。
- plugins: - name: nodeorder arguments: leastrequested.weight: 1 mostrequested.weight: 0 nodeaffinity.weight: 2 podaffinity.weight: 2 balancedresource.weight: 1 tainttoleration.weight: 3 imagelocality.weight: 1 podtopologyspread.weight: 2
cce-gpu-topology-predicate
GPU拓扑调度预选算法
-
- plugins: - name: 'cce-gpu-topology-predicate' - name: 'cce-gpu-topology-priority' - name: 'cce-gpu'
cce-gpu-topology-priority
GPU拓扑调度优选算法
-
- plugins: - name: 'cce-gpu-topology-predicate' - name: 'cce-gpu-topology-priority' - name: 'cce-gpu'
cce-gpu
结合CCE的GPU插件支持GPU资源分配,支持小数GPU配置。
说明:- 1.10.5及以上版本的插件不再支持该插件,请使用xgpu插件。
- 小数GPU配置的前提条件为CCE集群GPU节点为共享模式,检查集群是否关闭GPU共享,请参见修改CCE集群配置中的enable-gpu-share参数。
-
- plugins: - name: 'cce-gpu-topology-predicate' - name: 'cce-gpu-topology-priority' - name: 'cce-gpu'
numa-aware
NUMA亲和性调度,详情请参见NUMA亲和性调度。
arguments参数:
- weight:插件的权重。
- plugins: - name: 'nodelocalvolume' - name: 'nodeemptydirvolume' - name: 'nodeCSIscheduling' - name: 'networkresource' arguments: NetworkType: vpc-router - name: numa-aware arguments: weight: 10
networkresource
支持预选过滤ENI需求节点,参数由CCE传递,不需要手动配置。
arguments参数:
- NetworkType:网络类型(eni或者vpc-router类型)。
- plugins: - name: 'nodelocalvolume' - name: 'nodeemptydirvolume' - name: 'nodeCSIscheduling' - name: 'networkresource' arguments: NetworkType: vpc-router
nodelocalvolume
支持预选过滤不符合local volume需求的节点。
-
- plugins: - name: 'nodelocalvolume' - name: 'nodeemptydirvolume' - name: 'nodeCSIscheduling' - name: 'networkresource'
nodeemptydirvolume
支持预选过滤不符合emptydir需求的节点。
-
- plugins: - name: 'nodelocalvolume' - name: 'nodeemptydirvolume' - name: 'nodeCSIscheduling' - name: 'networkresource'
nodeCSIscheduling
支持预选过滤everest组件异常的节点。
-
- plugins: - name: 'nodelocalvolume' - name: 'nodeemptydirvolume' - name: 'nodeCSIscheduling' - name: 'networkresource'
组件说明
容器组件 |
说明 |
资源类型 |
---|---|---|
volcano-scheduler |
负责Pod调度。 |
Deployment |
volcano-controller |
负责CRD资源的同步。 |
Deployment |
volcano-admission |
Webhook server端,负责Pod、Job等资源的校验和更改。 |
Deployment |
volcano-agent |
云原生混部agent,负责节点QoS保障、CPU Burst和动态资源超卖等。 |
DaemonSet |
resource-exporter |
负责上报节点的NUMA拓扑信息。 |
DaemonSet |
volcano-descheduler |
负责集群Pod重调度,开启重调度能力后自动部署。 |
Deployment |
volcano-recommender |
根据容器的历史CPU、Memory实际资源使用率生成容器资源申请量配置推荐值。 |
Deployment |
volcano-recommender-prometheus-adapter |
从Prometheus采集容器的历史CPU、Memory资源指标值。 |
Deployment |
在控制台中修改volcano-scheduler配置
volcano-scheduler是负责Pod调度的组件,它由一系列action和plugin组成。action定义了调度各环节中需要执行的动作;plugin根据不同场景提供了action 中算法的具体实现细节。volcano-scheduler具有高度的可扩展性,您可以根据需要实现自己的action和plugin。
插件安装完成后,您可以单击左侧导航栏的“配置中心”,切换至“调度配置”页面进行基础调度能力设置。您也可以使用Volcano调度器的“专家模式”,结合实际业务场景定制专属的高阶调度策略。
当前小节介绍如何使用自定义配置,以便用户让volcano-scheduler能更适合自己的场景。
仅Volcano 1.7.1及以上版本支持该功能。
您可登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“配置中心”,切换至“调度配置”页面,选择Volcano调度器找到对应的“专家模式”,单击“开始使用”。
- 使用resource_exporter配置,示例如下:
... "default_scheduler_conf": { "actions": "allocate, backfill, preempt", "tiers": [ { "plugins": [ { "name": "priority" }, { "name": "gang" }, { "name": "conformance" } ] }, { "plugins": [ { "name": "drf" }, { "name": "predicates" }, { "name": "nodeorder" } ] }, { "plugins": [ { "name": "cce-gpu-topology-predicate" }, { "name": "cce-gpu-topology-priority" }, { "name": "cce-gpu" }, { "name": "numa-aware" # add this also enable resource_exporter } ] }, { "plugins": [ { "name": "nodelocalvolume" }, { "name": "nodeemptydirvolume" }, { "name": "nodeCSIscheduling" }, { "name": "networkresource" } ] } ] }, ...
开启后可以同时使用volcano-scheduler的numa-aware插件功能和resource_exporter功能。
Prometheus指标采集
volcano-scheduler通过端口8080暴露Prometheus metrics指标。您可以自建Prometheus采集器识别并通过http://{{volcano-schedulerPodIP}}:{{volcano-schedulerPodPort}}/metrics路径获取volcano-scheduler调度相关指标。
Prometheus指标暴露仅支持Volcano插件1.8.5及以上版本。
指标名称 |
指标类型 |
描述 |
Labels |
---|---|---|---|
e2e_scheduling_latency_milliseconds |
Histogram |
端到端调度时延毫秒(调度算法+绑定) |
- |
e2e_job_scheduling_latency_milliseconds |
Histogram |
端到端作业调度时延(毫秒) |
- |
e2e_job_scheduling_duration |
Gauge |
端到端作业调度时长 |
labels=["job_name", "queue", "job_namespace"] |
plugin_scheduling_latency_microseconds |
Histogram |
插件调度延迟(微秒) |
labels=["plugin", "OnSession"] |
action_scheduling_latency_microseconds |
Histogram |
动作调度时延(微秒) |
labels=["action"] |
task_scheduling_latency_milliseconds |
Histogram |
任务调度时延(毫秒) |
- |
schedule_attempts_total |
Counter |
尝试调度Pod的次数。“unschedulable”表示无法调度Pod,而“error”表示内部调度器问题 |
labels=["result"] |
pod_preemption_victims |
Gauge |
选定的抢占受害者数量 |
- |
total_preemption_attempts |
Counter |
集群中的抢占尝试总数 |
- |
unschedule_task_count |
Gauge |
无法调度的任务数 |
labels=["job_id"] |
unschedule_job_count |
Gauge |
无法调度的作业数 |
- |
job_retry_counts |
Counter |
作业的重试次数 |
labels=["job_id"] |
Volcano插件卸载说明
卸载插件时,会将Volcano的自定义资源(表7)全部清理,已创建的相关资源也将同步删除,重新安装插件不会继承和恢复卸载之前的任务信息。如集群中还存在正在使用的Volcano自定义资源,请谨慎卸载插件。
名称 |
API组 |
API版本 |
资源级别 |
---|---|---|---|
Command |
bus.volcano.sh |
v1alpha1 |
Namespaced |
Job |
batch.volcano.sh |
v1alpha1 |
Namespaced |
Numatopology |
nodeinfo.volcano.sh |
v1alpha1 |
Cluster |
PodGroup |
scheduling.volcano.sh |
v1beta1 |
Namespaced |
Queue |
scheduling.volcano.sh |
v1beta1 |
Cluster |
BalancerPolicyTemplate |
autoscaling.volcano.sh |
v1alpha1 |
Cluster |
Balancer |
autoscaling.volcano.sh |
v1alpha1 |
Cluster |
BalancerPolicyTemplate和Balancer资源仅在开启应用扩缩容优先级策略后创建,详情请参见应用扩缩容优先级策略。
版本记录
建议升级到跟集群配套的最新Volcano版本。
插件版本 |
支持的集群版本 |
更新特性 |
---|---|---|
1.14.11 |
v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 |
|
1.13.7 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 |
|
1.13.3 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 |
|
1.13.1 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 |
调度器内存使用优化 |
1.12.18 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 |
|
1.12.1 |
v1.19.16 v1.21 v1.23 v1.25 v1.27 v1.28 |
应用弹性扩缩容性能优化 |
1.11.21 |
v1.19.16 v1.21 v1.23 v1.25 v1.27 v1.28 |
|
1.11.6 |
v1.19.16 v1.21 v1.23 v1.25 v1.27 |
|
1.10.7 |
v1.19.16 v1.21 v1.23 v1.25 |
修复本地持久卷插件未计算预绑定到节点的pod的问题 |
1.10.5 |
v1.19.16 v1.21 v1.23 v1.25 |
|
1.9.1 |
v1.19.16 v1.21 v1.23 v1.25 |
|
1.7.2 |
v1.19.16 v1.21 v1.23 v1.25 |
|
1.7.1 |
v1.19.16 v1.21 v1.23 v1.25 |
Volcano支持v1.25集群 |
1.4.7 |
v1.15 v1.17 v1.19 v1.21 |
删除Pod状态Undetermined,以适配集群Autoscaler的弹性能力。 |
1.4.5 |
v1.17 v1.19 v1.21 |
volcano-scheduler的部署方式由StatefulSet调整为Deployment,修复节点异常时Pod无法自动迁移的问题 |
1.4.2 |
v1.15 v1.17 v1.19 v1.21 |
|
1.3.7 |
v1.15 v1.17 v1.19 v1.21 |
|
1.3.3 |
v1.15 v1.17 v1.19 v1.21 |
修复GPU异常导致的调度器崩溃问题;修复特权Init容器准入失败问题 |
1.3.1 |
v1.15 v1.17 v1.19 |
|
1.2.5 |
v1.15 v1.17 v1.19 |
|
1.2.3 |
v1.15 v1.17 v1.19 |
|