Entrée: Objet d'entrée + Contrôleur d'entrée
Objet d'entrée:
Tout comme un objet de service, sauf qu'il ne fait rien par lui-même. Un objet d'entrée décrit simplement un moyen d'acheminer le trafic de couche 7 dans votre cluster, en spécifiant des éléments tels que le chemin de demande, le domaine de demande et le service kubernetes cible, tandis qu'un objet de service crée réellement des services
Contrôleur d'entrée:
Un service qui:
1. listens on specific ports (usually 80 and 443) for web traffic
2. Listens for the creation, modification, or deletion of Ingress Objects
3. Creates internal L7 routing rules based on these Ingress Objects
Par exemple, le contrôleur d'entrée Nginx peut utiliser un service pour écouter sur les ports 80 et 443, puis lire de nouveaux objets d'entrée et les analyser dans de nouvelles sections de serveur {} qu'il place dynamiquement dans son nginx.conf
LoadBalancer: fournisseur d'équilibreur de charge externe + type de service
Fournisseur d'équilibrage de charge externe:
Les fournisseurs d'équilibreurs de charge externes sont généralement configurés dans des clouds tels que AWS et GKE et fournissent un moyen d'attribuer des adresses IP externes via la création d'équilibreurs de charge externes. Cette fonctionnalité peut être utilisée en désignant un service comme type "LoadBalancer".
Type de service:
Lorsque le type de service est défini sur LoadBalancer, Kubernetes tente de créer puis de programmer un équilibreur de charge externe avec des entrées pour les pods Kubernetes, leur attribuant ainsi des adresses IP externes.
Le contrôleur de service Kubernetes automatise la création de l'équilibreur de charge externe, les vérifications de l'état (si nécessaire), les règles de pare-feu (si nécessaire) et récupère l'IP externe du LoadBalancer nouvellement créé ou configuré qui a été alloué par le fournisseur de cloud et le remplit dans le objet de service.
Des relations:
Les services de contrôleur d'entrée sont souvent fournis en tant que type LoadBalancer, de sorte que les requêtes http et https peuvent être transmises par proxy / routées vers des services internes spécifiques via une adresse IP externe.
Cependant, un LoadBalancer n'est pas strictement nécessaire pour cela. Depuis, grâce à l'utilisation de hostNetwork ou hostPort, vous pouvez techniquement lier un port sur l'hôte à un service (vous permettant de le visiter via le port externe ip: port). Bien qu'officiellement, cela ne soit pas recommandé car il utilise des ports sur le nœud réel.
Références:
https://kubernetes.io/docs/concepts/configuration/overview/#services
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers
https://kubernetes.io/docs/concepts/services-networking/ingress/