Tous les produits
Search
Centre de documentation

Elastic Container Instance:Référence des commandes VNodectl

Dernière mise à jour :Aug 27, 2026

VNodectl gère les VNodes, les modules complémentaires et d'autres ressources en ligne de commande. Les sections suivantes décrivent la syntaxe, les paramètres et des exemples des commandes VNodectl les plus courantes.

Prérequis

  • VNodectl — Installez et configurez l'outil de ligne de commande VNodectl avant d'exécuter les commandes présentées dans cette rubrique.

  • Fichier de configuration VNode — Avant d'exécuter une commande VNode (create, list, describe, update ou delete), vérifiez que le fichier ~/.vnode/config existe et est correctement configuré.

  • Fichier kubeconfig du cluster — Un fichier kubeconfig pour le cluster à gérer. Les commandes relatives aux modules complémentaires ainsi que la commande cluster clean utilisent le chemin vers le fichier kubeconfig via l'option --kubeconfig.

Aperçu des commandes

Les commandes VNodectl sont regroupées par ressource cible.

Commandes VNode

Commande

Description

vnode create

Crée un VNode.

vnode list

Affiche le statut des VNodes.

vnode describe

Affiche les détails d'un VNode spécifique.

vnode update

Met à jour la configuration d'un VNode spécifié.

vnode delete

Supprime un VNode spécifié.

Commandes relatives aux modules complémentaires et au cluster

Commande

Description

vnode addon list

Liste les modules complémentaires disponibles.

vnode addon enable

Installe et active un module complémentaire.

vnode addon disable

Désactive et désinstalle un module complémentaire.

vnode cluster clean

Nettoie les configurations du cluster.

Ajoutez l'option --dry à toute commande vnode pour valider côté client sans appliquer les modifications. En cas d'erreur de compatibilité de version API, ajoutez l'option --kubernetes-version pour spécifier la version Kubernetes de votre cluster.

Gérer les VNodes

create

La commande create crée un VNode.

Syntaxe

vnode create [--vswitch-id <vswitch id>] [--security-group-id <security group id>] [--custom-resources <resource name>=<resource count>] [--cluster-dns <dns ip>] [--cluster-domain <cluster domain>]

Paramètres

Paramètre

Description

Exemple

--vswitch-id

ID du vSwitch auquel le VNode appartient.

--vswitch-id vsw-7xv2yk45qp5etidgf****

--security-group-id

ID du groupe de sécurité auquel le VNode appartient.

--security-group-id sg-7xv5tcch4kjdr65t****

--custom-resources

Ressources personnalisées prises en charge par le VNode. Si un pod Elastic Container Instance (ECI) déclare l'une de ces ressources personnalisées dans son champ requests, le pod est planifié sur le VNode. Spécifiez les ressources au format <resource name>=<resource count> et séparez plusieurs ressources par des virgules.

--custom-resources example1.com=10000,example2.com=20000

--cluster-dns

Adresses IP des serveurs DNS. Si un pod ECI définit dnsPolicy=ClusterFirst, les conteneurs du pod utilisent ces adresses IP pour la résolution DNS. Spécifiez plusieurs adresses IP séparées par des virgules.

--cluster-dns 192.168.XX.XX

--cluster-domain

Nom de domaine du cluster. Après avoir spécifié ce paramètre, Kubelet configure tous les conteneurs pour rechercher ce domaine en plus des domaines de recherche de l'hôte.

--cluster-domain example.com

Exemple 1 : Créer un VNode sans paramètres

[root@vnode-test001 ~]# vnode create
{"RequestId":"12B984BB-D3FB-53D2-8326-9A2E9EF7EF46","VirtualNodeId":"vnd-7xv6g0gp3ok6****"}

Exemple 2 : Créer un VNode prenant en charge des ressources personnalisées

[root@vnode-test001 ~]# vnode create --custom-resources example1.com=10000,example2.com=20000
{"RequestId":"98965B78-4F19-5DA4-BAAA-E6461BF7FF67","VirtualNodeId":"vnd-7xv1zedhxp****"}

Une fois le VNode créé, exécutez la commande kubectl describe node pour afficher les détails du nœud. Les ressources personnalisées spécifiées apparaissent dans les sections Capacity et Allocatable.

Capacity:
  alibabacloud.com/vfuse:  6k
  cpu:                     100k
  ephemeral-storage:       40000Gi
  example1.com:            10k
  example2.com:            20k
  memory:                  1000Ti
  nvidia.com/gpu:          1k
  pods:                    2k
Allocatable:
  alibabacloud.com/vfuse:  6k
  cpu:                     100k
  ephemeral-storage:       40000Gi
  example1.com:            10k
  example2.com:            20k
  memory:                  1000Ti
  nvidia.com/gpu:          1k
  pods:                    2k

Exemple 3 : Créer un VNode avec des serveurs DNS et un domaine de cluster

[root@vnode-test001 ~]# vnode create --cluster-dns 192.168.0.1 --cluster-domain example.com
{"RequestId":"1FCB1308-7C96-5FF2-A7BB-202F69D1961C","VirtualNodeId":"vnd-7xv4qqroc5f****"}

Une fois le VNode créé, exécutez la commande kubectl describe pod pour afficher les détails d'un pod ECI planifié sur le VNode. Les valeurs spécifiées apparaissent sous forme d'annotations k8s.aliyun.com/cluster-dns et k8s.aliyun.com/cluster-domain.

[root@vnode-test001 ~]# kubectl describe pod test-5748b8cfb6-xgmp7
Name:         test-5748b8cfb6-xgmp7
Namespace:    default
Priority:     0
Node:         cn-guangzhou.vnd-7xv4qqroc5f****/192.168.XX.XX
Start Time:   Mon, 27 Mar 2023 17:27:06 +0800
Labels:       alibabacloud.com/eci=true
              app=nginx
              pod-template-hash=5748b8cfb6
Annotations:  k8s.aliyun.com/cluster-dns: 192.168.0.1
              k8s.aliyun.com/cluster-domain: example.com
              k8s.aliyun.com/eci-created-by-template: true
              k8s.aliyun.com/eci-extra-ephemeral-storage: 62Gi
              k8s.aliyun.com/eci-instance-cpu: 2.0
              k8s.aliyun.com/eci-instance-id: eci-7xv4qqroc****
              k8s.aliyun.com/eci-instance-mem: 4.0
              k8s.aliyun.com/eci-instance-spec: 2.0-4.0Gi
              k8s.aliyun.com/eci-instance-zone: cn-guangzhou-a
              k8s.aliyun.com/eci-matched-image-cache: imc-7xv80t0k3g****

list

La commande list affiche le statut des VNodes.

Syntaxe

vnode list

Exemple

[root@vnode-test001 ~]# vnode list
VNODE ID                VNODE NAME                                  CREATED              STATUS    SCHEDULABLE ZONES
vnd-7xv6g0gp3ok****     vnode-cn-guangzhou-a-7xv6g0****             About a minute ago   Ready     cn-guangzhou-a
vnd-7xvetkyase7****     vnode-cn-guangzhou-a-7xvetk****             49 minutes ago       Ready     cn-guangzhou-a
[root@vnode-test001 ~]#

describe

La commande describe affiche les détails d'un VNode spécifique.

Syntaxe

vnode describe <vnode id>

Exemple

[root@vnode-test001 ~]# vnode describe vnd-7xv6g0gp3ok69****
VNodeId: vnd-7xv6g0gp3ok69****
VNodeName: vnode-cn-guangzhou-a-7xv6g0gp3****
ClusterId:
RegionId: cn-guangzhou
ResourceGroupId: rg-acfm4ia6****
SecurityGroupId: sg-7xv5tcch****
VpcId: vpc-7xvuaoizvudf366bh****
VSwitchId: vsw-7xv4hi6ioxpw3****
Status: Ready
CreationTime: 2022-12-23T06:44:52Z
IntranetIp: 192.168.XX.54
InternetIp:
Cpu:
Memeory:
Tags: []
Events:
  Type        Reason                          Agent            Message
  -----       -----                           -----            -----
  Normal      StartingHeartBeat               2 minutes ago    birth cry
  Warning     HeartBeatToECIServiceFailed     2 minutes ago    fail to connect eci-service
  Normal      CreateEciForVnode               2 minutes ago    [eci.virtualnode]Create Eci eci-7xv6g0gp3**** for Vnode
  Normal      StartingVKubelet                2 minutes ago    Starting VKubelet.

update

La commande update met à jour la configuration d'un VNode spécifié. Vous pouvez mettre à jour les valeurs des options --vswitch-id, --security-group-id, --custom-resources, --cluster-dns et --cluster-domain.

Important

La commande update écrase l'intégralité de la configuration. Les valeurs de paramètres que vous transmettez remplacent les valeurs existantes. Par exemple, si le VNode est déjà configuré avec --custom-resources example1.com=10000 et que vous souhaitez ajouter la ressource personnalisée example2.com avec une quantité de 10000, transmettez --custom-resources example1.com=10000,example2.com=10000.

Syntaxe

vnode update <vnode id> [--vswitch-id <vswitch id>] [--security-group-id <security group id>] [--custom-resources <resource name>=<resource count>] [--cluster-dns <dns ip>] [--cluster-domain <cluster domain>]

Paramètres

La commande update accepte les mêmes options que la commande create. Pour les descriptions des options, consultez le tableau des paramètres de la section create.

Paramètre

Description

Exemple

--vswitch-id

ID du vSwitch auquel le VNode appartient.

--vswitch-id vsw-7xv2yk45qp5etidgf****

--security-group-id

ID du groupe de sécurité auquel le VNode appartient.

--security-group-id sg-7xv5tcch4kjdr65t****

--custom-resources

Ressources personnalisées prises en charge par le VNode. Si un pod Elastic Container Instance (ECI) déclare l'une de ces ressources personnalisées dans son champ requests, le pod est planifié sur le VNode. Spécifiez les ressources au format <resource name>=<resource count> et séparez plusieurs ressources par des virgules.

--custom-resources example1.com=10000,example2.com=20000

--cluster-dns

Adresses IP des serveurs DNS. Si un pod ECI définit dnsPolicy=ClusterFirst, les conteneurs du pod utilisent ces adresses IP pour la résolution DNS. Spécifiez plusieurs adresses IP séparées par des virgules.

--cluster-dns 192.168.XX.XX

--cluster-domain

Nom de domaine du cluster. Après avoir spécifié ce paramètre, Kubelet configure tous les conteneurs pour rechercher ce domaine en plus des domaines de recherche de l'hôte.

--cluster-domain example.com

Exemple

[root@vnode-test001 ~]# vnode update vnd-7xv1zedhxp**** --cluster-domain example.com
{"RequestId":"DA86B896-3A05-5A0C-A9D2-A1D433C85035"}

Pour vérifier la configuration du VNode après la mise à jour, exécutez la commande vnode describe.

delete

La commande delete supprime un VNode spécifié.

Important

Avant de supprimer un VNode, assurez-vous qu'aucune instance ECI n'est en cours d'exécution sur ce VNode.

Syntaxe

vnode delete <vnode id>

Exemple

[root@vnode-test001 ~]# vnode delete vnd-7xv6g0gp3ol****
are you sure to delete vnd-7xv6g0gp3ol**** ?(y/n)y
{"RequestId":"7B7E8276-772A-5229-B2D7-B3DD36A66432"}

Pour vérifier l'état de vos VNodes après la suppression, exécutez la commande vnode list.

Gérer les modules complémentaires et les configurations du cluster

Outre les VNodes, VNodectl gère les modules complémentaires du cluster, tels que eci-profile et vnode-approver, et nettoie les configurations du cluster. Dans les commandes de cette section, l'option --kubeconfig indique le chemin vers le fichier kubeconfig du cluster cible.

addon list

La commande addon list liste les modules complémentaires disponibles.

Syntaxe

vnode addon list --kubeconfig <kubeconfig path>

Exemple

[root@vnode-test001 ~]# vnode addon list --kubeconfig ~/.kube/config
  ADDON NAME     |   STATUS   |  MAINTAINER  |                  REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
  eci-profile    | enabled    | ECI Group    | https://github.com/aliyuneci/eci-profile.git
  vnode-approver | disabled   | ECI Group    | https://github.com/aliyuneci/vnode-approver.git

addon enable

La commande addon enable installe et active un module complémentaire. Cette commande crée les ressources requises par le module complémentaire dans le cluster, telles qu'un ClusterRole, une CustomResourceDefinition, un Service et un Deployment.

Syntaxe

vnode addon enable <add-on name> --kubeconfig <kubeconfig path>

Exemple

L'exemple suivant active le module complémentaire eci-profile puis liste les modules complémentaires pour confirmer le nouveau statut :

[root@vnode-test001 ~]# vnode addon list
  ADDON NAME     |   STATUS   |  MAINTAINER  |                  REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
  eci-profile    | disabled   | ECI Group    | https://github.com/aliyuneci/eci-profile.git
  vnode-approver | disabled   | ECI Group    | https://github.com/aliyuneci/vnode-approver.git
[root@vnode-test001 ~]# vnode addon enable eci-profile --kubeconfig ~/.kube/config
clusterrole.rbac.authorization.k8s.io/eci-profile created
clusterrolebinding.rbac.authorization.k8s.io/eci-profile created
customresourcedefinition.apiextensions.k8s.io/selectors.eci.aliyun.com created
service/eci-profile created
serviceaccount/eci-profile created
deployment.apps/eci-profile created
[root@vnode-test001 ~]# vnode addon list
  ADDON NAME     |   STATUS   |  MAINTAINER  |                  REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
  eci-profile    | enabled    | ECI Group    | https://github.com/aliyuneci/eci-profile.git
  vnode-approver | disabled   | ECI Group    | https://github.com/aliyuneci/vnode-approver.git

addon disable

La commande addon disable désactive et désinstalle un module complémentaire. Cette commande supprime les ressources créées pour le module complémentaire dans le cluster.

Syntaxe

vnode addon disable <add-on name> --kubeconfig <kubeconfig path>

Exemple

L'exemple suivant désactive le module complémentaire eci-profile puis liste les modules complémentaires pour confirmer le nouveau statut :

[root@vnode-test001 ~]# vnode addon list
  ADDON NAME     |   STATUS   |  MAINTAINER  |                  REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
  eci-profile    | enabled    | ECI Group    | https://github.com/aliyuneci/eci-profile.git
  vnode-approver | disabled   | ECI Group    | https://github.com/aliyuneci/vnode-approver.git
[root@vnode-test001 ~]# vnode addon disable eci-profile --kubeconfig ~/.kube/config
clusterrole.rbac.authorization.k8s.io "eci-profile" deleted
clusterrolebinding.rbac.authorization.k8s.io "eci-profile" deleted
customresourcedefinition.apiextensions.k8s.io "selectors.eci.aliyun.com" deleted
Error from server (NotFound): error when deleting "/root/.vnode/addon/eci-profile/eci-profile-cus...
service "eci-profile" deleted
serviceaccount "eci-profile" deleted
deployment.apps "eci-profile" deleted
[root@vnode-test001 ~]# vnode addon list
  ADDON NAME     |   STATUS   |  MAINTAINER  |                  REPOSITORY
-----------------+------------+--------------+------------------------------------------------------
  eci-profile    | disabled   | ECI Group    | https://github.com/aliyuneci/eci-profile.git
  vnode-approver | disabled   | ECI Group    | https://github.com/aliyuneci/vnode-approver.git

cluster clean

La commande cluster clean nettoie les configurations du cluster.

Important

Exécutez la commande cluster clean si vous n'utilisez plus les VNodes.

Syntaxe

vnode cluster clean --kubeconfig <kubeconfig path> [--bootstrap]

L'option à utiliser dépend de la méthode précédemment employée pour configurer le cluster.

Exemple 1 : Nettoyer un cluster configuré via la méthode standard

vnode cluster clean --kubeconfig <kubeconfig path>

Exemple 2 : Nettoyer un cluster configuré via la méthode TLS bootstrap

vnode cluster clean --kubeconfig <kubeconfig path> --bootstrap