web-dev-qa-db-fra.com

Quels sont les avantages de l'utilisation de Kubernetes Ingress dans Azure AKS

Je crois comprendre que le fait de définir le type Service sur LoadBalancer crée un nouvel équilibreur Azure Load et attribue une adresse IP à Service. Est-ce que cela signifie que je peux avoir plusieurs services utilisant le port 80? Si l'application derrière ma Service (une application ASP.NET Core) peut gérer TLS et HTTPS, pourquoi ne devrais-je pas simplement utiliser LoadBalancer's pour toute Service que je souhaite exposer à Internet?

Quel est l'avantage d'utiliser une Ingress si je me moque de la terminaison TLS (vous pouvez laisser Cloudflare gérer la terminaison TLS)? Si quelque chose, ralentit les choses en ajoutant un saut supplémentaire pour chaque demande.

Mettre à jour

Certaines réponses ci-dessous indiquent que la création d'équilibreurs de charge est coûteuse. Il convient de noter que les équilibreurs de charge sur Azure sont gratuits, mais ils facturent les adresses IP, dont ils vous en donnent cinq gratuitement. Ainsi, pour les petits projets où vous souhaitez exposer jusqu'à cinq adresses IP, c'est essentiellement gratuit. Pas plus que cela, alors vous voudrez peut-être regarder ad usign Ingress.

Certaines réponses mentionnent également une complexité supplémentaire si vous n'utilisez pas Ingress. J'ai déjà mentionné que Cloudflare peut gérer la résiliation TLS pour moi. J'ai également découvert le projet external-dns Kubernetes pour créer des entrées DNS dans Cloudflare pointant vers l'adresse IP de l'équilibreur de charge? Il me semble que couper Ingress réduit la complexité car c’est une chose de moins que je dois configurer et gérer. Le choix de Ingress est également énorme, il est probable que je choisirai le mauvais qui finira par ne plus être entretenu après un certain temps.

7

Non, vous ne pouvez pas avoir plusieurs services d'écoute sur le port 80, car l'équilibreur de charge ne saura pas où les acheminer (l'entrée le sera, cependant). Si vous pouvez héberger chaque service sur un port différent, vous pouvez utiliser l'équilibreur de charge. alternativement, si vous avez une adresse IP publique pour chaque service et un port backend différent sur chaque service, vous pouvez y parvenir.

quote: La combinaison de protocole et de port que vous avez entrée correspond à une autre règle utilisée par cet équilibreur de charge. La combinaison de protocole et de port de chaque règle d'équilibrage de charge et de règle entrante NAT sur un équilibreur de charge doit être unique.

encore une fois, si vous êtes développeur, vous ne réalisez probablement pas à quel point il est plus pratique de gérer les certificats dès leur entrée, et non sur tous les conteneurs individuels censés être accessibles.

3
4c74356b41

Il existe un article de Nice ici décrivant les différences entre Service (Load Balancer) et Ingress.

En résumé, vous pouvez avoir plusieurs services (Load Balancer) dans le cluster, où chaque application est exposée indépendamment l'une de l'autre. Le problème principal est que chaque équilibreur de charge ajouté augmente le coût de votre solution et ne doit pas nécessairement être ainsi, sauf si vous en avez strictement besoin.

Si plusieurs applications écoutent sur le port 80 et si elles se trouvent dans le conteneur, vous n'avez pas besoin de le mapper également sur le port 80 du nœud hôte. Vous pouvez l'attribuer à n'importe quel port, car le service gérera les mappages de ports dynamiques à votre place.

La pénétration est la meilleure dans ce scénario, car vous pouvez avoir une liste d'entrée sur le port 80 et acheminer le trafic vers le bon service en fonction de nombreuses variables, telles que:

  • Domaine
  • Chemin de l'URL
  • Chaîne de requête
  • Et beaucoup d'autres

L’entrée ne se limite pas à la terminaison TLS, c’est en termes simples une passerelle proxy\qui contrôlera l’acheminement vers le bon service; la terminaison TLS n’est que l’une des caractéristiques.

2
Diego Mendes