All Products
Search
Document Center

Container Compute Service:Create virtual nodes and update the vSwitch configuration

Last Updated:Mar 26, 2026

In Container Compute Service (ACS) clusters, all nodes are virtual nodes. When you create a cluster, ACS automatically creates one virtual node per selected zone. Each pod scheduled to a virtual node occupies a private vSwitch IP address.

Add virtual nodes when you need to:

  • Expand to more zones — distribute pods across additional zones for high availability (for example, distributed task workloads).

  • Add compute capacity — the existing zones lack sufficient compute capacity of a specific type for your workload.

  • Add IP addresses — the vSwitches in the current virtual nodes are running out of available IP addresses.

Limitations

Virtual nodes do not support custom labels, annotations, or taints.

Prerequisites

Before you begin, ensure that you have:

To confirm which zones already have virtual nodes, go to the Virtual Nodes page of the cluster. Each zone supports only one virtual node — you cannot add a second virtual node to an existing zone.

Choose a method

Method Best for
Method 1: Console (Create virtual node) Visual, guided creation with automatic vSwitchIds update
Method 2: Console (Edit acs-profile ConfigMap) Batch-updating vSwitches directly in the ConfigMap
Method 3: kubectl (Edit acs-profile ConfigMap) CLI-based update, suitable for scripted or automated workflows

All three methods trigger the same underlying mechanism: ACS creates a virtual node for any zone in vSwitchIds that does not already have one.

Method 1: Console (Create virtual node)

Creating a virtual node through the console automatically updates the vSwitchIds field in the acs-profile ConfigMap.

  1. Log on to the ACS console.

  2. On the Clusters, click the name of the cluster to go to the cluster management page.

  3. In the navigation pane on the left, click Virtual Nodes.

  4. Click Create Virtual Node.

  5. In the vSwitch section, select a vSwitch and click OK. Each virtual node corresponds to a zone. You cannot create more than one virtual node for a zone. The console groups available vSwitches into three categories: You can also click Create vSwitch to create a new vSwitch in the VPC console.

    Category Description
    Unavailable The zone does not support ACS compute capacity. These vSwitches cannot be selected.
    Recommended The zone has sufficient resources of the ComputeClass or GPU type you selected. Select at least one vSwitch from this category to match your compute type requirements.
    Others The zone has fewer or more limited resources than Recommended zones. Selectable but not optimal.

    image

  6. Confirm that the new virtual node appears in the Virtual Nodes list with a status of Active.

Method 2: Modify the vSwitchIds configuration in acs-profile

Add a vSwitch ID to the vSwitchIds field in the acs-profile ConfigMap. ACS automatically creates a virtual node for any zone in the list that does not already have one.

Note

To delete a virtual node, remove its vSwitch ID from vSwitchIds. Before doing so, make sure no pods are running on that virtual node.

Console

  1. Log on to the ACS console.

  2. On the Clusters, click the name of the cluster to go to the cluster management page.

  3. Modify the vSwitchIds configuration in acs-profile.

    1. In the navigation pane on the left, choose Configurations > ConfigMaps.

    2. On the ConfigMap page, select kube-system from the Namespace dropdown.

    3. Find acs-profile and click Edit.

    4. In the vSwitchIds field, add the new vSwitch ID and click OK.

      Note

      Separate multiple vSwitch IDs with commas (,). ACS creates a virtual node for each zone in the list that does not already have one.

      更新交换机.png

  4. Verify the result:

    1. In the navigation pane on the left, click Virtual Nodes.

    2. Confirm that a new virtual node appears in the list with a status of Active.

kubectl

  1. Connect to your ACS cluster. See Obtain the kubeconfig file of a cluster and connect to the cluster using kubectl or Use kubectl on CloudShell to manage Kubernetes clusters.

  2. Check the current virtual nodes:

    kubectl get node

    Sample output:

    NAME                            STATUS   ROLES   AGE   VERSION
    virtual-kubelet-cn-shanghai-g   Ready    agent   17d   v1.30.1-alibaba.13+ae02e00117a549
    virtual-kubelet-cn-shanghai-l   Ready    agent   17d   v1.30.1-alibaba.13+ae02e00117a549
    virtual-kubelet-cn-shanghai-m   Ready    agent   19d   v1.30.1-alibaba.13+ae02e00117a549
  3. Modify the vSwitchIds configuration in acs-profile.

    1. Open the acs-profile ConfigMap for editing:

      kubectl edit cm -n kube-system acs-profile
    2. In the vSwitchIds field, append the new vSwitch ID separated by a comma. After editing, the data section looks similar to:

      Note

      Separate multiple vSwitch IDs with commas (,). ACS creates a virtual node for each zone in the list that does not already have one.

      data:
        enableClusterIp: "true"
        enableHybridMode: "false"
        enableLinuxArm64Node: "false"
        enableLogController: "false"
        enablePVCController: "true"
        enablePrivateZone: "false"
        enableReuseSSLKey: "false"
        enableUpdatePodResourceController: "false"
        enableWindowsAmd64Node: "false"
        featureGates: ProtectionFinalizers=false
        resourceGroupId: ""
        securityGroupId: sg-uf61931oi1w4te******
        selectors: ""
        slsMachineGroup: ""
        vSwitchIds: vsw-uf68xih52l5inkm******,vsw-uf67n6lumryq7li******,vsw-uf6i6bsihi3sger******,vsw-uf6g4yjk3kemgei******
    3. Save and exit the editor.

  4. Verify that the new virtual node is created:

    kubectl get node

    The following sample output shows that a new virtual node named virtual-kubelet-cn-shanghai-e is added:

    NAME                            STATUS   ROLES   AGE   VERSION
    virtual-kubelet-cn-shanghai-e   Ready    agent   8s    v1.30.1-alibaba.13+ae02e00117a549
    virtual-kubelet-cn-shanghai-g   Ready    agent   17d   v1.30.1-alibaba.13+ae02e00117a549
    virtual-kubelet-cn-shanghai-l   Ready    agent   17d   v1.30.1-alibaba.13+ae02e00117a549
    virtual-kubelet-cn-shanghai-m   Ready    agent   19d   v1.30.1-alibaba.13+ae02e00117a549