This is a stable feature in Kubernetes, and has been since version v1.35. It was first available in the v1.30 release. You can no longer disable or opt out of this feature or behavior (it is locked); if you explicitly set a value for the associated feature gate DynamicResourceAllocation, Kubernetes ignores it but does not report any error.
本节介绍 Kubernetes 中的动态资源分配(Dynamic Resource Allocation,DRA)。
DRA 是 kubernetes 提供的一项特性,允许你在多个 Pod 之间请求和共享资源。
这些资源通常是挂接的设备,例如硬件加速器。
借助 DRA,设备驱动和集群管理员可以定义设备的类别,这些类别可供工作负载中的 Pod 申领。 Kubernetes 会将匹配的设备分配给特定的申领,并将相应的 Pod 调度到能够访问这些已分配设备的节点上。
使用 DRA 分配资源提供了与动态卷制备类似的体验: 你使用 PersistentVolumeClaims 从存储类中申领存储容量, 并在 Pod 中请求使用该已申领的容量。
DRA 提供了一种灵活的方式来分类、请求和使用集群中的设备。 使用 DRA 具有以下优势:
与需要按容器请求设备、不支持设备共享且不支持基于表达式的设备过滤的 设备插件相比, 这些优势在设备分配工作流方面提供了显著改进。
使用 DRA 分配设备的工作流涉及以下类型的用户:
设备所有者(Device owner): 负责设备。设备所有者可以是商业供应商、集群运维人员或其他实体。 要使用 DRA,设备必须具备兼容 DRA 的驱动,这些驱动需要完成以下工作:
集群管理员(Cluster admin): 负责配置集群和节点、附加设备、安装驱动等类似任务。 要使用 DRA,集群管理员需要完成以下工作:
工作负载运维人员(Workload operator): 负责在集群中部署和管理工作负载。 要使用 DRA 为 Pod 分配设备,工作负载运维人员需要完成以下工作: