Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Modify the vSwitch for Pods

Dernière mise à jour :Aug 11, 2026

Ajoutez des vSwitches pour étendre le pool d'adresses IP des Pods lorsqu'un vSwitch est saturé dans un cluster Terway.

Cette opération peut s'avérer nécessaire si :

  • Un vSwitch est épuisé et les Pods restent bloqués à l'état ContainerCreating.

  • Vous effectuez une mise à l'échelle horizontale des nœuds et avez besoin de plus de capacité IP dans une zone spécifique.

  • Vous souhaitez répartir l'utilisation des adresses IP sur plusieurs vSwitches pour un meilleur équilibre.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Limitations

  • Le nouveau vSwitch doit se trouver dans la même zone que vos nœuds. Si aucun vSwitch configuré ne couvre la zone d'un nœud, Terway utilise par défaut le vSwitch de l'ENI principale du nœud.

  • Vous ne pouvez pas modifier le vSwitch d'une ENI existante. Pour appliquer les nouveaux paramètres de vSwitch pour les Pods, ajoutez de nouveaux nœuds ou effectuez un redémarrage progressif.

Détecter l'épuisement des adresses IP du vSwitch

Lorsqu'un vSwitch n'a plus d'adresses IP disponibles, les Pods nécessitant une nouvelle ENI restent à l'état ContainerCreating.

Vérifiez les journaux Terway sur le nœud où le Pod est planifié :

kubectl logs --tail=100 -f terway-eniip-***** -n kube-system -c terway

Si la sortie contient l'erreur suivante, cela signifie que le vSwitch ne dispose d'aucune adresse IP disponible :

time="20**-03-17T07:03:40Z" level=warning msg="Assign private ip address failed: Aliyun API Error: RequestId: 2095E971-E473-4BA0-853F-0C41CF52651D Status Code: 403 Code: InvalidVSwitchId.IpNotEnough Message: The specified VSwitch \"vsw-***\" has not enough IpAddress., retrying"

Vérifiez également le nombre d'Available IP Addresses dans la console VPC sous vSwitch. Un compte de 0 confirme l'épuisement.

Prise d'effet des modifications

Terway applique la nouvelle configuration de vSwitch uniquement lors de la création d'une nouvelle ENI. Les ENI existantes ne sont pas affectées.

Nœuds existants : La nouvelle configuration ne s'applique pas tant que :

  1. Une ENI sur le nœud est encore utilisée (Pods en cours d'exécution ou ENI trunk).

  2. Le nœud a atteint sa limite d'ENI (définie par le type d'instance).

Nouveaux nœuds : Les nœuds ajoutés après la mise à jour utilisent immédiatement le nouveau vSwitch.

Modifier le vSwitch pour les Pods

Méthode via la console

Requiert Terway v1.4.4 ou ultérieur. Pour les versions antérieures, utilisez la méthode kubectl.

  1. Créez un vSwitch dans la console Virtual Private Cloud (VPC) dans la même zone que les nœuds cibles. Consultez la rubrique Créer et gérer des vSwitches.

    Remarque

    La densité des Pods augmente avec le temps. Utilisez un masque de sous-réseau de /19 ou inférieur (au moins 8 192 adresses IP par bloc CIDR) pour les vSwitches de Pods.

  2. Connectez-vous à la console Container Service Management. Dans le volet de navigation de gauche, cliquez sur Clusters.

  3. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons.

  4. Sur la page Add-ons, cliquez sur l'onglet Network. Recherchez Terway et cliquez sur Upgrade. Si l'option Upgrade n'est pas disponible, la version est déjà à jour. Après la mise à niveau, cliquez sur Configuration.

    Remarque

    Les modifications apportées aux modules complémentaires via d'autres méthodes seront écrasées lors du redéploiement.

    Configuration

  5. Sur la page Parameters pour terway-eniip, sélectionnez le nouveau vSwitch dans PodVswitchId. Conservez les autres paramètres par défaut.

  6. Cliquez sur OK.

Méthode kubectl

Utilisez cette méthode pour les versions de Terway antérieures à la v1.4.4, ou pour gérer la configuration via kubectl.

  1. Créez un vSwitch dans la console VPC dans la même zone que les nœuds cibles. Consultez la rubrique Créer et gérer des vSwitches.

    Remarque

    La densité des Pods augmente avec le temps. Utilisez un masque de sous-réseau de /19 ou inférieur (au moins 8 192 adresses IP par bloc CIDR) pour les vSwitches de Pods.

  2. Modifiez la ConfigMap Terway pour ajouter le nouveau vSwitch :

    kubectl edit cm eni-config -n kube-system

    Ajoutez l'ID du nouveau vSwitch au champ vswitches. Cet exemple ajoute vsw-BBB aux côtés de vsw-AAA :

    eni_conf: |
      {
        "version": "1",
        "max_pool_size": 25,
        "min_pool_size": 10,
        "vswitches": {"cn-shanghai-f":["vsw-AAA", "vsw-BBB"]},
        "service_cidr": "172.21.0.0/20",
        "security_group": "sg-CCC"
      }
  3. Redémarrez les Pods Terway pour appliquer la nouvelle configuration. Les Pods sont recréés automatiquement.

    • Supprimez les Pods Terway dans le scénario ENI multi-IP :

      kubectl delete -n kube-system pod -l app=terway-eniip
    • Supprimez les Pods Terway dans le scénario ENI single-IP :

      kubectl delete -n kube-system pod -l app=terway-eni
  4. Vérifiez que tous les Pods Terway sont en cours d'exécution :

    kubectl get pod -n kube-system | grep terway
  5. Créez un Pod de test et vérifiez qu'il obtient une adresse IP du nouveau vSwitch.

    Remarque

    Les nouveaux paramètres de vSwitch s'appliquent uniquement aux ENI nouvellement créées. Les ENI existantes conservent le vSwitch d'origine. Pour appliquer les modifications à tous les nœuds, effectuez un redémarrage progressif.

Stratégies de sélection de vSwitch

Lorsque plusieurs vSwitches existent dans une zone, Terway en sélectionne un pour chaque nouvelle ENI en fonction du paramètre vswitch_selection_policy. Consultez la rubrique Personnaliser les paramètres de configuration Terway.

Par défaut : ordered

Terway choisit le vSwitch disposant du plus grand nombre d'adresses IP disponibles, ce qui fonctionne bien dans la plupart des cas.

Cas limite : Lors d'une mise à l'échelle rapide, les demandes concurrentes de création d'ENI s'exécutent avant la mise à jour des comptes d'IP, de sorte que toutes peuvent choisir le même vSwitch, entraînant une distribution inégale.

Alternative : random

Terway choisit un vSwitch au hasard pour chaque nouvelle ENI, répartissant les adresses IP de manière plus uniforme et empêchant les goulots d'étranglement lors d'une mise à l'échelle explosive.

Isoler les vSwitches par pool de nœuds

Pour un contrôle strict, configurez les paramètres réseau au niveau du nœud afin d'associer un vSwitch de Pod unique à chaque pool de nœuds par zone, éliminant ainsi la contention lors de l'allocation des adresses IP.

FAQ

Les Pods ont perdu l'accès à Internet après l'ajout d'un vSwitch

Le nouveau vSwitch ne dispose pas de règle SNAT, donc ses Pods ne peuvent pas atteindre Internet. Configurez une règle SNAT pour le nouveau vSwitch à l'aide de NAT Gateway. Consultez la rubrique Activer l'accès à Internet pour votre cluster.

L'adresse IP d'un Pod se trouve en dehors du bloc CIDR du vSwitch configuré

Les adresses IP des Pods proviennent des ENI, et vous ne pouvez spécifier un vSwitch qu'à la création de l'ENI. Par la suite, tous les Pods sur l'ENI obtiennent des adresses IP de ce vSwitch, indépendamment des modifications de configuration ultérieures.

Cela se produit généralement lorsque :

  • Le nœud possède des ENI restantes d'un cluster précédent (supprimé sans vidange des Pods).

  • Vous avez mis à jour la configuration du vSwitch, mais les ENI existantes sur le nœud utilisent toujours l'ancien vSwitch.

Ajoutez de nouveaux nœuds ou redémarrez progressivement les nœuds existants pour créer de nouvelles ENI avec la configuration mise à jour.

L'utilisation des adresses IP est déséquilibrée entre les vSwitches

La stratégie ordered est à l'origine de ce problème lors d'une mise à l'échelle rapide. Les demandes concurrentes de création d'ENI choisissent toutes le même vSwitch (celui qui possède le plus d'adresses IP), l'épuisant tandis que les autres restent sous-utilisés.

Selon votre situation :

  • Pour les nœuds existants dont les vSwitches sont presque épuisés : Redémarrez progressivement certains nœuds pour libérer les ENI et rendre les adresses IP au vSwitch.

  • Pour les nouveaux nœuds ou les déploiements futurs : Modifiez le paramètre vswitch_selection_policy de ordered à random. Cela distribue les ENI de manière aléatoire pour éviter les goulots d'étranglement. Consultez la rubrique Personnaliser les paramètres de configuration Terway.

  • Pour une isolation stricte : Utilisez la configuration réseau au niveau du nœud pour attribuer exactement un vSwitch de Pod par zone et par pool de nœuds.

Étapes suivantes