Sign inSign up

ascendai/infer-operator

By ascendai

•Updated 11 days ago

Image
0

395

ascendai/infer-operator repository overview

⁠Cluster Scheduling Component Infer Operator

⁠Quick Reference


⁠Infer Operator

Infer Operator is one of the MindCluster cluster scheduling components, deployed on management nodes. It is a Kubernetes Operator used to deploy and manage multi-role collaborative inference jobs. Infer Operator defines three CRDs: InferServiceSet, InferService, and InstanceSet, and implements controllers for these three resource types to reconcile their instance states.

⁠Use Cases

MindCluster provides the Infer Operator component to launch inference services based on instance configurations of inference services, and supports manual scaling of inference instances.

⁠Features
  • Creates inference instance Workloads and Services.
  • Supports manual scaling of inference instances.
⁠Upstream and Downstream Dependencies
  1. Creates inference instance Workloads based on user-configured job YAML.
  2. After the Workload Controller creates Pods, Volcano performs the final resource selection.
  3. If the Workload requests NPU cards, Atlas Device Plugin obtains NPU information and completes device mounting.

⁠Tag Convention

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

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

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

TagDockerfileImage Content
v26.1.1-ubuntu22.04Dockerfile.ubuntu⁠Infer Operator v26.1.1 (Base Image: Ubuntu 22.04)
v26.1.1-openeuler24.03Dockerfile.openeuler⁠Infer 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 Infer Operator
⁠Infer Operator 26.0.0
TagDockerfileImage Content
v26.0.0Dockerfile⁠Infer Operator v26.0.0 (Base Image: Ubuntu 22.04)

⁠Quick Start

⁠Prerequisites (Optional)
⁠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 nodesInfer Operator depends on Volcano for resource scheduling
Atlas Device PluginSame version as Infer OperatorCompute nodesRequired when inference jobs use NPU resources
⁠Hardware Requirements
ResourceRequirement
CPU2 cores
Memory2 GB
⁠Obtain Infer Operator Image Online
  1. Pull the official image

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

    docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/infer-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/infer-operator:{tag} infer-operator:{tag}
    
⁠How to Build Locally (Optional)
⁠Local Build Steps for v26.1.0 and Later Versions

Example: build an Infer 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 infer-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 Infer 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-infer-operator_26.0.0_linux-aarch64.zip
    
  2. Extract the package to a custom directory

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

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

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

    Replace the image {tag} in the infer-operator-{version}.yaml file with the actual tag.

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

    kubectl get pods -A | grep infer-operator
    

    Expected result: The infer-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:ed5d901ed…

Size

48.6 MB

Last updated

11 days ago

docker pull ascendai/infer-operator:v26.1.1-ubuntu22.04