Atlas for Volcano is built on the open-source Volcano scheduling plugin mechanism, adding features such as Atlas AI processor (NPU) affinity scheduling and virtual device scheduling. It is deployed on management nodes. Volcano is a scheduler component that leverages the interconnect topology and processing logic of Atlas AI processors to achieve optimal utilization, maximizing the computing performance of Atlas AI processors.
The basic Kubernetes scheduler can only perform resource scheduling based on the number of Atlas chips. To achieve affinity scheduling and maximize resource utilization, it is necessary to be aware of the network connectivity between Atlas chips and select the network-optimal resources. MindCluster provides the Volcano service deployed on management nodes, offering network affinity scheduling for different Atlas devices and network topologies.
self-maintain-available-card is enabled by
default. When disabled, available device information is obtained from the underlying cluster scheduling components.)resource-level-config parameter.Based on the characteristics of Atlas 910 AI processors and resource utilization rules, the following affinity policies are established (listed by priority):
Atlas for Volcano contains two images:
volcano-npu_*.so).Starting from Atlas NPU Scheduler Plugin v26.1.0, tags follow the format below:
<component-version>-<ascend-scheduling-plugin-version>-<os>
| 字段 | 示例值 | 说明 |
|---|---|---|
component-version | v1.7.0 | Version Number of Volcano component |
ascend-scheduling-plugin-version | v26.1.1 | Version Number of Atlas NPU Scheduler Plugin |
os | alpinelatest | Operating System for Volcano Images |
The following are all images of the latest released 26.1.1(Volcano v1.12.0) version of Atlas for Volcano. For all historical version Tags, please refer to Supported Tags.
| Tag | Dockerfile | Image Content |
|---|---|---|
v1.12.0-v26.1.1-alpinelatest | Dockerfile-scheduler.alpine | Volcano Scheduler v26.1.1 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.12.0, Base Image: Alpine latest) |
v1.12.0-v26.1.1-alpinelatest | Dockerfile-controller.alpine | Volcano Controller v26.1.1 Image (based on Volcano v1.12.0, Base Image: Alpine latest) |
v1.12.0-v26.1.1-openeuler24.03 | Dockerfile-scheduler.openeuler | Volcano Scheduler v26.1.1 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.12.0, Base Image: openEuler 24.03) |
v1.12.0-v26.1.1-openeuler24.03 | Dockerfile-controller.openeuler | Volcano Controller v26.1.1 Image (based on Volcano v1.12.0, Base Image: openEuler 24.03) |
| Tag | Dockerfile | Image Content |
|---|---|---|
v1.9.0-v26.1.1-alpinelatest | Dockerfile-scheduler.alpine | Volcano Scheduler v26.1.1 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.9.0, Base Image: Alpine latest) |
v1.9.0-v26.1.1-alpinelatest | Dockerfile-controller.alpine | Volcano Controller v26.1.1 Image (based on Volcano v1.9.0, Base Image: Alpine latest) |
v1.9.0-v26.1.1-openeuler24.03 | Dockerfile-scheduler.openeuler | Volcano Scheduler v26.1.1 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.9.0, Base Image: openEuler 24.03) |
v1.9.0-v26.1.1-openeuler24.03 | Dockerfile-controller.openeuler | Volcano Controller v26.1.1 Image (based on Volcano v1.9.0, Base Image: openEuler 24.03) |
| Tag | Dockerfile | Image Content |
|---|---|---|
v1.7.0-v26.1.1-alpinelatest | Dockerfile-scheduler.alpine | Volcano Scheduler v26.1.1 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.7.0, Base Image: Alpine latest) |
v1.7.0-v26.1.1-alpinelatest | Dockerfile-controller.alpine | Volcano Controller v26.1.1 Image (based on Volcano v1.7.0, Base Image: Alpine latest) |
v1.7.0-v26.1.1-openeuler24.03 | Dockerfile-scheduler.openeuler | Volcano Scheduler v26.1.1 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.7.0, Base Image: openEuler 24.03) |
v1.7.0-v26.1.1-openeuler24.03 | Dockerfile-controller.openeuler | Volcano Controller v26.1.1 Image (based on Volcano v1.7.0, Base Image: openEuler 24.03) |
The tags of the Atlas NPU Scheduler Plugin versions before v26.1.0 follow the format below:
<component-version>-<ascend-scheduling-plugin-version>
| Field | Example | Description |
|---|---|---|
component-version | v1.7.0 | Version Number of Volcano component |
ascend-scheduling-plugin-version | v26.0.0 | Version Number of Atlas NPU Scheduler Plugin |
Using linux-aarch64 architecture as an example: Atlas for Volcano package download: Ascend-mindxdl-volcano_26.0.0_linux-aarch64.zip
| Tag | Dockerfile (path within package) | Image Content |
|---|---|---|
v1.9.0-v26.0.0 | volcano-v1.9.0/Dockerfile-scheduler | Volcano Scheduler v26.0.0 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.9.0, Base Image: Alpine latest) |
v1.9.0-v26.0.0 | volcano-v1.9.0/Dockerfile-controller | Volcano Controller v26.0.0 Image (based on Volcano v1.9.0, Base Image: Alpine latest) |
Using linux-aarch64 architecture as an example: Atlas for Volcano package download: Ascend-mindxdl-volcano_26.0.0_linux-aarch64.zip
| Tag | Dockerfile (path within package) | Image Content |
|---|---|---|
v1.7.0-v26.0.0 | volcano-v1.7.0/Dockerfile-scheduler | Volcano Scheduler v26.0.0 Image (Including Atlas NPU Scheduler Plugin, based on Volcano v1.7.0, Base Image: Alpine latest) |
v1.7.0-v26.0.0 | volcano-v1.7.0/Dockerfile-controller | Volcano Controller v26.0.0 Image (based on Volcano v1.7.0, Base Image: Alpine latest) |
| Software | Supported Versions | Installation Location | Description |
|---|---|---|---|
| Kubernetes | 1.19.x~1.34.x | All nodes | See Kubernetes Documentation |
| Atlas Device Plugin | Same version as Volcano | Compute nodes | Volcano depends on Atlas Device Plugin to report device information |
| ClusterD | Same version as Volcano | Management nodes | Volcano depends on ClusterD to aggregate cluster fault information |
| Resource | Up to 100 Nodes | 500 Nodes | 1000 Nodes |
|---|---|---|---|
| Volcano Scheduler CPU | 2.5 cores | 4 cores | 5.5 cores |
| Volcano Scheduler Memory | 2.5 GB | 5 GB | 8 GB |
| Volcano Controller CPU | 2 cores | 2 cores | 2.5 cores |
| Volcano Controller Memory | 2.5 GB | 3 GB | 4 GB |
Pull images
Pull the Atlas for Volcano images from AscendHub, replacing {tag} with the actual version tag (v1.9.0-v26.0.0 recommended).
docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-scheduler:{tag}
docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-controller-manager:{tag}
Retag images
Retag the official images with local tags for consistent naming and easier operations management.
docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-scheduler:{tag} volcanosh/vc-scheduler:{tag}
docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/vc-controller-manager:{tag} volcanosh/vc-controller-manager:{tag}
Example: Build a Volcano v1.9.0 component image with linux-aarch64 architecture based on Alpine latest, integrated with Atlas NPU Scheduler Plugin v26.1.1.
Obtain the target Dockerfile
Navigate to the chapter Supported Tags and Dockerfile Links, open the Dockerfile-scheduler.alpine and Dockerfile-controller.alpine link corresponding to your target version, and save the file to a local directory on your aarch64 environment.
Build the Docker image locally (disable cache to ensure a clean build)
# Build scheduler image
docker build --no-cache -t volcanosh/vc-scheduler:v1.9.0 ./ -f Dockerfile-scheduler.alpine
# Build controller image
docker build --no-cache -t volcanosh/vc-controller-manager:v1.9.0 ./ -f Dockerfile-controller.alpine
Important Notes If your Docker version is earlier than 18.09 or BuildKit is not manually enabled, the TARGETPLATFORM variable cannot be read during image building, which will cause the image build to fail.
- TARGETPLATFORM is a built-in global variable of Docker BuildKit for identifying the target build platform, e.g. linux/amd64, linux/arm64.
- This variable is automatically injected only after BuildKit is enabled. It cannot be used in legacy Docker environments or environments where BuildKit is disabled by default.
- Run the following command before building to enable BuildKit temporarily:
export DOCKER_BUILDKIT=1
Example: Build a Volcano v1.9.0 component image based on Alpine latest with linux-aarch64 architecture, integrated with Atlas NPU Scheduler Plugin v26.0.0.
Download the officially released component package
wget https://gitcode.com/Ascend/mind-cluster/releases/download/v26.0.0/Ascend-mindxdl-volcano_26.0.0_linux-aarch64.zip
Extract the package to a custom directory
unzip Ascend-mindxdl-volcano_26.0.0_linux-aarch64.zip -d Ascend-mindxdl-volcano_26.0.0_linux-aarch64
Enter the extracted working directory
cd Ascend-mindxdl-volcano_26.0.0_linux-aarch64/volcano-v1.9.0
Build Docker images locally (disable cache to ensure a clean build)
# Build scheduler image
docker build --no-cache -t volcanosh/vc-scheduler:v1.9.0 ./ -f Dockerfile-scheduler
# Build controller image
docker build --no-cache -t volcanosh/vc-controller-manager:v1.9.0 ./ -f Dockerfile-controller
Start Volcano
Replace {version} in the YAML filename with the actual version (currently volcano v1.9.0). Before deployment,
replace the image {tag} in the YAML file with the actual image version.
kubectl apply -f volcano-{version}.yaml
Verify deployment
kubectl get pods -A | grep volcano
Expected result: The volcano-related Pods in the corresponding namespace should be in Running state.
View the license information for the Mind series software contained in these images.
As with all container images, pre-installed software packages (Python, system libraries, etc.) may be subject to their respective license agreements.
Content type
Image
Digest
sha256:f2ebf51fe…
Size
53.4 MB
Last updated
7 days ago
docker pull ascendai/vc-scheduler:v1.4.0-v5.0.RC2.2