J'ai compris qu'Ingress peut être utilisé lorsque nous voulons exposer plusieurs services/routes avec un seul équilibreur de charge/IP publique.
Maintenant, je veux exposer mon serveur Nginx au public. J'ai deux choix
service type as LoadBalancer
voila j'ai obtenu l'IP publiqueMaintenant, je peux faire mon travail avec l'option 1 quand ou pourquoi devrais-je choisir l'option 2 quel est l'avantage d'avoir nginx avec Ingress sans Ingress?
Il existe une différence entre règle d'entrée (entrée) et contrôleur d'entrée . Donc, techniquement, le contrôleur d'entrée nginx et le service de type LoadBalancer ne sont pas comparables. Vous pouvez comparer la ressource d'entrée et le service de type LoadBalancer, ci-dessous.
De manière générale:
Le service de type LoadBalancer
est un équilibreur de charge L4 (TCP). Vous l'utiliseriez pour exposer une application ou un service unique au monde extérieur. Il équilibrerait la charge en fonction de l'adresse IP et du port de destination.
Ingress
ressource de type créerait un équilibreur de charge L7 (HTTP/S). Vous l'utiliseriez pour exposer plusieurs services en même temps, car L7 LB est sensible aux applications, afin qu'il puisse déterminer où envoyer le trafic en fonction de l'état de l'application.
entrée et relation contrôleur d'entrée :
Ingress
ou ingress rules
sont les règles qui ingress controller
suit pour répartir la charge. Le contrôleur d'entrée obtient le paquet, vérifie les règles d'entrée et détermine à quel service livrer le paquet.
Contrôleur d'entrée Nginx
Le contrôleur d'entrée Nginx utilise le service de type LoadBalancer comme point d'entrée du cluster. Ensuite, vérifie les règles d'entrée et répartit la charge. Cela peut être très déroutant. Vous créez une ressource d'entrée, elle crée l'équilibreur de charge HTTP/S. Il vous donne également une adresse IP externe (sur GKE, par exemple), mais lorsque vous essayez de frapper cette adresse IP, la connexion est refusée.
Conclusions:
Vous utiliseriez le service de type Loadbalancer si vous aviez une seule application, par exemple myapp.com
que vous souhaitez associer à une adresse IP.
Vous utiliseriez une ressource d'entrée si vous aviez plusieurs applications, par exemple myapp1.com
, myapp1.com/mypath
, myapp2.com
, .., myappn.com
à mapper sur une seule adresse IP.
Comme l'entrée est L7, elle est capable de faire la distinction entre myapp1.com
et myapp1.com/mypath
, il peut acheminer le trafic vers le bon service.
La réponse acceptée couvrait déjà beaucoup de choses. Toutes les raisons sont valables, sauf que la raison pour laquelle j'utilise le contrôleur d'entrée dans aws est de minimiser les coûts. J'ai plusieurs applications Web qui s'exécutent dans les AWS de cluster Kubernetes. Pour accéder à ces applications au lieu d'exposer une application individuelle en tant que LoadBalancer et de créer un ELB individuel (chaque ELB coûte de l'argent), j'expose le service de contrôleur d'entrée en tant que LoadBalancer et j'ai créé une règle d'entrée pour chacune.
Les étapes impliquent: