Tous les produits
Search
Centre de documentation

:Deploy a high-reliability NGINX Ingress controller

Dernière mise à jour :Aug 11, 2026

Lorsque vous utilisez le contrôleur NGINX Ingress, les pods qui l'exécutent servent de points d'entrée et de redirection du trafic. Leur fiabilité détermine la fiabilité globale du contrôleur. Par défaut, deux pods sont déployés après l'installation, ce qui suffit dans la plupart des scénarios. Vous pouvez garantir une haute fiabilité en ajustant le nombre de pods et leur méthode de planification.

Prérequis

Afficher les pods par défaut du contrôleur NGINX Ingress

Une fois le contrôleur NGINX Ingress installé, une application provisionnant deux pods est déployée dans le cluster.

Exécutez la commande suivante pour afficher les pods du contrôleur NGINX Ingress :

kubectl -n kube-system get pod | grep nginx-ingress-controller

Résultat attendu :

nginx-ingress-controller-*****nxs                    1/1     Running   0          3h
nginx-ingress-controller-*****9pm                    1/1     Running   0          3h

Garantir la haute fiabilité du contrôleur NGINX Ingress

Important

Par défaut, le contrôleur NGINX Ingress utilise une configuration d'affinité qui limite le déploiement à un seul pod par nœud. Assurez-vous que le nombre de pods ne dépasse pas le nombre de nœuds du cluster.

Augmenter le nombre de pods du contrôleur

Augmenter le nombre de pods du contrôleur permet d'éviter les interruptions dues à la défaillance d'un pod unique.

image
  1. Exécutez la commande kubectl scale pour mettre à l'échelle le déploiement du contrôleur NGINX Ingress. La commande suivante porte le nombre de pods à trois.

    kubectl -n kube-system scale --replicas=3 deployment/nginx-ingress-controller

    Résultat attendu :

    deployment.extensions/nginx-ingress-controller scaled
  2. Exécutez la commande suivante pour afficher les pods du contrôleur NGINX Ingress :

    kubectl -n kube-system get pod | grep nginx-ingress-controller

    Résultat attendu :

    nginx-ingress-controller-********                    1/1     Running   0          3h
    nginx-ingress-controller-********                    1/1     Running   0          3h
    nginx-ingress-controller-********                    1/1     Running   0          33s

Planifier les pods sur des nœuds aux spécifications élevées

La planification des pods sur des nœuds aux spécifications élevées évite la dégradation des performances ou l'éviction des pods due à l'insuffisance des ressources du nœud.

image
  1. Exécutez la commande suivante pour afficher l'utilisation actuelle des ressources du cluster :

    kubectl top nodes

    Résultat attendu :

    NAME                       CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
    cn-shanghai.********.230   71m          1%     1712Mi          31%       
    cn-shanghai.********.226   63m          1%     1669Mi          30%       
    cn-shanghai.********.229   125m         3%     2545Mi          46%       
    cn-shanghai.********.253   152m         3%     3804Mi          69%  

    Le résultat affiche les ressources CPU et mémoire déjà utilisées par chaque nœud. Sélectionnez les nœuds disposant des ressources disponibles les plus importantes pour la planification.

  2. Exécutez la commande suivante pour ajouter le libellé node-role.kubernetes.io/ingress="true" aux nœuds. Dans l'exemple suivant, le libellé est ajouté aux nœuds cn-shanghai.********.226 et cn-shanghai.********.230 qui disposent des ressources CPU disponibles les plus importantes.

    Important
    • Le nombre de nœuds étiquetés doit être supérieur ou égal au nombre de pods. Si le nombre de nœuds étiquetés est inférieur au nombre de pods du contrôleur, certains pods risquent de ne pas être déployés.

    • Si vous utilisez un ACK dedicated cluster, n'ajoutez pas de libellés aux nœuds Master.

    kubectl label nodes cn-shanghai.********.226 cn-shanghai.********.230 node-role.kubernetes.io/ingress="true"

    Résultat attendu :

    node/cn-shanghai.********.226 labeled
    node/cn-shanghai.********.230 labeled
  3. Exécutez la commande suivante pour mettre à jour le déploiement du contrôleur NGINX Ingress en ajoutant la configuration nodeSelector. Cela garantit que les pods du contrôleur ne sont déployés que sur les nœuds portant le libellé node-role.kubernetes.io/ingress="true".

    kubectl -n kube-system patch deployment nginx-ingress-controller -p '{"spec": {"template": {"spec": {"nodeSelector": {"node-role.kubernetes.io/ingress": "true"}}}}}'

    Résultat attendu :

    deployment.extensions/nginx-ingress-controller patched
  4. Exécutez la commande suivante pour afficher les pods Ingress déployés sur les nœuds du cluster portant le libellé node-role.kubernetes.io/ingress="true".

    kubectl -n kube-system get pod -o wide | grep nginx-ingress-controller

    Résultat attendu :

    nginx-ingress-controller-*****nxs     1/1     Running     0      74m     10.1.117.186   cn-shanghai.********.230
    nginx-ingress-controller-*****9pm     1/1     Running     0      74m     10.1.117.172   cn-shanghai.********.226