ingress est un logiciel de fichiers non menaçant avec une taille de fichier de 364 Ko. Il s'agit d'un objet ressource k8s utilisé pour exposer les services au monde extérieur. L'objet ressource définit la liaison de différents noms d'hôte et URL au back-end correspondant. services et achemine http selon différents chemins et trafic https.
Ingress introduction
Ingress est un fichier non menaçant d'une taille de fichier de 364 Ko. Il s'agit d'un objet de ressource k8s utilisé pour exposer les services au monde extérieur. Cet objet de ressource définit différents noms d'hôte (domaine). noms) et URL et la liaison correspondante du service final (service k8s), acheminant le trafic http et https selon différents chemins.
La relation entre nodePort, LoadBalancer et Ingress
Il existe trois façons d'exposer les services à l'extérieur du cluster k8s : nodePort, LoadBalancer et Ingress.
La méthode nodePort entraînera l'ouverture de plus en plus de ports sur les nœuds lorsque le nombre de services augmente, ce qui est difficile à gérer.
LoadBalancer est plus adapté pour être utilisé en conjonction avec le LB du fournisseur de cloud, mais le coût ne peut pas être sous-estimé lorsqu'il y a de plus en plus de LB.
Nous pouvons voir que les deux LoadBalancers ont leurs propres IP. Si nous envoyons une requête à LoadBalancer 22.33.44.55, elle sera redirigée vers notre service interne service-nginx. Si vous envoyez une demande au 77.66.55.44, elle sera redirigée vers notre service interne service-python.
C'est effectivement très pratique, mais il faut savoir que les adresses IP sont rares et coûteuses. Imaginez qu'il n'y ait pas seulement deux services dans notre cluster Kubernetes, mais s'il y en a plusieurs, le coût de création de LoadBalancers pour ces services augmentera de façon exponentielle.
Ingress est la méthode officiellement fournie par k8s pour exposer les services au monde extérieur. C'est également une méthode couramment utilisée dans les environnements de production. Généralement, dans les environnements cloud, la méthode LB + Ingress Ctroller est utilisée pour fournir des services au monde extérieur. . Vous pouvez utiliser Ingress pour exposer les services internes. En sortant du cluster, cela vous permet d'économiser de précieuses adresses IP statiques car vous n'avez pas besoin de déclarer plusieurs services LoadBalancer. Cette fois, il peut également effectuer des configurations supplémentaires.
ingress Controller
Ingress Controller est un service de pod qui encapsule un équilibreur de charge Web frontal. En même temps, il implémente une prise de conscience dynamique d'Ingress basée sur celui-ci et génère dynamiquement la charge Web frontale. équilibreur basé sur la définition des fichiers de configuration Ingress, tel que Nginx Ingress Controller est essentiellement un Nginx, sauf qu'il peut générer dynamiquement des fichiers de configuration Nginx basés sur la définition des ressources Ingress, puis les recharger dynamiquement.
Donc, en général, pour utiliser Ingress, vous devez d'abord déployer l'entité Ingress Controller (équivalent au front-end Nginx), puis créer Ingress (équivalent au reflet de ressource k8s de la configuration Nginx). Ingress Controller est déployé, il sera dynamique Détecter la création d’Ingress et générer la configuration correspondante. Il existe de nombreuses implémentations d'Ingress Controller : certaines sont basées sur Nginx, d'autres sont basées sur HAProxy, et il existe également Kong Ingress Controller basé sur OpenResty, etc.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!