Sign inSign up

ascendai/ascend-operator

By ascendai

•Updated 11 days ago

Image
0

1.2K

ascendai/ascend-operator repository overview

⁠Cluster Scheduling Component Atlas Operator

⁠Quick Reference


⁠Atlas Operator

Atlas Operator is one of the MindCluster cluster scheduling components, deployed on management nodes. It supports distributed training on Kubernetes using the MindSpore and PyTorch AI frameworks. Through the CRD (Custom Resource Definition) mechanism, AscendJob tasks are defined, allowing users to easily implement distributed training by simply configuring YAML files.

⁠Use Cases

MindCluster provides the Atlas Operator component to input information required for collective communication, including the master process IP, RankTable information for static network collective communication, and the rankId of the current Pod.

⁠Features
  • Creates Pods and injects collective communication parameters via environment variables.
  • Creates RankTable files and mounts them to containers via shared storage or ConfigMap, optimizing collective communication link establishment performance.
⁠Upstream and Downstream Dependencies
  1. Perceives whether the resources required by the current job are satisfied through Volcano.
  2. After resources are satisfied, creates the corresponding Pods for the job and injects collective communication parameters as environment variables.
  3. After Pod creation, Volcano performs the final resource selection.
  4. Obtains the chip ID, IP, and rankId information of the job from Atlas Device Plugin, aggregates them, and generates the collective communication file.
  5. Mounts the collective communication file into the container via shared storage or ConfigMap.

⁠Tag Convention

Starting from version v26.1.0, tags follow the format below:

<version>-<os>
FieldExampleDescription
versionv26.1.1Version Number of Atlas Operator
osubuntu22.04Operating System for Atlas Operator Images
⁠Atlas Operator Latest Version 26.1.1

The following are all images of the latest released 26.1.1 version of Atlas Operator. For all historical version Tags, please refer to Supported Tags⁠.

TagDockerfileImage Content
v26.1.1-ubuntu22.04Dockerfile.ubuntu⁠Atlas Operator v26.1.1 (Base Image: Ubuntu 22.04)
v26.1.1-openeuler24.03Dockerfile.openeuler⁠Atlas Operator v26.1.1 (Base Image: openEuler 24.03)

The tags of versions before v26.1.0 follow the format below:

<version>
FieldExampleDescription
versionv26.0.0Version Number of Atlas Operator
⁠Atlas Operator 26.0.0
TagDockerfileImage Content
v26.0.0Dockerfile⁠Atlas Operator v26.0.0 (Ubuntu 22.04)

⁠Quick Start

⁠Prerequisites
⁠Software Dependencies
SoftwareSupported VersionsInstallation LocationDescription
Kubernetes1.17.x~1.34.x (1.19.x or later recommended)All nodesSee Kubernetes Documentation⁠
VolcanoSee Volcano Kubernetes compatibility⁠Management nodesAtlas Operator depends on Volcano for resource scheduling
⁠Hardware Requirements
ResourceRequirement
CPU2 cores
Memory2.5 GB
⁠Obtain Atlas Operator Image Online
  1. Pull the official image

    Pull the Atlas Operator image from AscendHub, replacing {tag} with the actual version.

    docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-operator:{tag}
    
  2. Retag the image

    Retag the official image with a local tag for consistent naming and easier operations management.

    docker tag swr.cn-south-1.myhuaweicloud.com/ascendhub/ascend-operator:{tag} ascend-operator:{tag}
    
⁠Build Locally (Optional)
⁠Local Build Steps for v26.1.0 and Later Versions

Example: build an Atlas Operator image of architecture linux-aarch64, version v26.1.1, based on Ubuntu 22.04.

  1. Obtain the target Dockerfile

    Navigate to the chapter Supported Tags and Dockerfile Links, open the Dockerfile.ubuntu link corresponding to your target version, and save the file to a local directory on your aarch64 environment.

  2. Build the Docker image locally (disable cache to ensure a clean build)

    docker build --no-cache -t ascend-operator:v26.1.1 ./ -f Dockerfile.ubuntu
    

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.

  1. TARGETPLATFORM is a built-in global variable of Docker BuildKit for identifying the target build platform, e.g. linux/amd64, linux/arm64.
  2. 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.
  3. Run the following command before building to enable BuildKit temporarily:
export DOCKER_BUILDKIT=1
⁠Local Image Build Process for Versions Before v26.1.0

Example: Build an Atlas Operator image of architecture linux-aarch64, version v26.0.0, based on Ubuntu 22.04.

  1. Download the officially released component package

    wget https://gitcode.com/Ascend/mind-cluster/releases/download/v26.0.0/Ascend-mindxdl-ascend-operator_26.0.0_linux-aarch64.zip
    
  2. Extract the package to a custom directory

    unzip Ascend-mindxdl-ascend-operator_26.0.0_linux-aarch64.zip -d Ascend-mindxdl-ascend-operator_26.0.0_linux-aarch64
    
  3. Enter the extracted working directory

    cd Ascend-mindxdl-ascend-operator_26.0.0_linux-aarch64
    
  4. Build the Docker image locally (disable cache to ensure a clean build)

    docker build --no-cache -t ascend-operator:v26.0.0 ./ -f Dockerfile
    
⁠Deploy Atlas Operator
  1. Start Atlas Operator

    Before deployment, replace the image {tag} in the YAML file with the actual image version.

    kubectl apply -f ascend-operator-{version}.yaml
    
  2. Verify deployment

    kubectl get pods -A | grep ascend-operator
    

    Expected result: The ascend-operator related Pods in the corresponding namespace should be in Running state.


⁠License

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.

Tag summary

Content type

Image

Digest

sha256:cb8c00b3c…

Size

90.7 MB

Last updated

11 days ago

docker pull ascendai/ascend-operator:v26.1.1-openeuler24.03