VNodectl is the command-line tool for managing VNodes and add-ons in an Elastic Container Instance (ECI) environment. Use VNodectl after you have installed and configured the tool to create, inspect, update, and delete VNodes, manage add-ons, and clean up cluster configurations.
Before you begin
All VNode management commands require the ~/.vnode/config file to exist and be correctly configured. Make sure the file exists and its configurations are correct before running any vnode command.
Global flags
Two flags apply to all vnode commands:
| Flag | Description |
|---|---|
--dry | Runs client-side verification without making any changes. Use this to check for configuration errors before running the actual command. |
--kubernetes-version | Specifies the Kubernetes version of the cluster. Add this flag when you encounter an API version compatibility error. |
Manage VNodes
create
Creates a VNode. All parameters are optional — run vnode create without parameters to use your default configuration.
Syntax
vnode create [--vswitch-id] [--security-group-id] [--custom-resources] [--cluster-dns] [--cluster-domain]Parameters
| Parameter | Description | Example |
|---|---|---|
--vswitch-id | ID of the vSwitch to connect the VNode to | --vswitch-id vsw-7xv2yk45qp5etidgf**** |
--security-group-id | ID of the security group for the VNode | --security-group-id sg-7xv5tcch4kjdr65t**** |
--custom-resources | Custom resources the VNode advertises, in <Resource name>=<Count> format. Pods requesting this resource are scheduled to this VNode. Separate multiple resources with commas (,). | --custom-resources example1.com=10000,example2.com=20000 |
--cluster-dns | IP addresses of the Alibaba Cloud DNS server. Used when a pod's dnsPolicy is ClusterFirst. Separate multiple addresses with commas (,). | --cluster-dns 192.168.XX.XX |
--cluster-domain | Domain name of the cluster. When set alongside the host's search domain, kubelet configures all containers to search this domain. | --cluster-domain example.com |
Example 1: Create a VNode without parameters

Example 2: Create a VNode with custom resources

After the VNode is created, run kubectl describe node to verify. The resources you configured appear in the Capacity and Allocatable sections.

Example 3: Create a VNode with cluster DNS and cluster domain

After the VNode is created, run kubectl describe pod on a pod scheduled to this VNode. The clusterDNS and clusterDomain values appear in the annotations section.

list
Lists all VNodes and their current status. Use list for a quick status overview across all VNodes.
Syntax
vnode listExample

describe
Shows the full configuration and status for a specific VNode. Use describe when you need complete details on a single VNode.
Syntax
vnode describe <vnode-id>Example

update
Updates the configuration of an existing VNode. You can update the vSwitch, security group, custom resources, cluster DNS, and cluster domain.
Update operations overwrite existing values — they do not append. For example, if a VNode already has --custom-resources example1.com=10000 and you want to add example2.com=10000, specify both resources: --custom-resources example1.com=10000,example2.com=10000.
Syntax
vnode update <vnode-id> [--vswitch-id] [--security-group-id] [--custom-resources] [--cluster-dns] [--cluster-domain]Parameters
| Parameter | Description | Example |
|---|---|---|
--vswitch-id | ID of the vSwitch to connect the VNode to | --vswitch-id vsw-7xv2yk45qp5etidgf**** |
--security-group-id | ID of the security group for the VNode | --security-group-id sg-7xv5tcch4kjdr65t**** |
--custom-resources | Custom resources the VNode advertises, in <Resource name>=<Count> format. Separate multiple resources with commas (,). | --custom-resources example1.com=10000,example2.com=20000 |
--cluster-dns | IP addresses of the Alibaba Cloud DNS server. Separate multiple addresses with commas (,). | --cluster-dns 192.168.XX.XX |
--cluster-domain | Domain name of the cluster. | --cluster-domain example.com |
Example

delete
Deletes a VNode.
Before deleting a VNode, make sure no elastic container instances are running on it.
Syntax
vnode delete <vnode-id>Example

Manage add-ons
VNodectl manages two add-ons: the eci-profile component and the vnode-approver component.
addon list
Lists all available add-ons and their current state.
Syntax
vnode addon list --kubeconfig /path/to/kubeconfigExample

addon enable
Loads an add-on.
Syntax
vnode addon enable <add-on-name> --kubeconfig /path/to/kubeconfigExample

addon disable
Uninstalls an add-on.
Syntax
vnode addon disable <add-on-name> --kubeconfig /path/to/kubeconfigExample

Clear cluster configurations
cluster clean
Removes all VNode-related configurations from a cluster. Run this command when you no longer use VNodes in the cluster.
The command supports two modes depending on how you originally configured the cluster:
| Mode | When to use |
|---|---|
| Regular mode | You configured the cluster without TLS bootstrapping |
| TLS bootstrapping mode | You configured the cluster using the --bootstrap flag during setup |
Syntax
vnode cluster clean --kubeconfig <path-to-kubeconfig> [--bootstrap]Regular mode
vnode cluster clean --kubeconfig /path/to/kubeconfigTLS bootstrapping mode
vnode cluster clean --kubeconfig /path/to/kubeconfig --bootstrap