Comment accéder à l'adresse IP externe du service basé sur le load balancer (load balancer service) dans le contrôleur Ingress?
sobes.tech IA
Réponse de l'IA
Dans le contrôleur Ingress, on n'accède pas directement à l'IP externe d'un service de type LoadBalancer. Le contrôleur Ingress agit comme point d'entrée et route le trafic vers différents services en fonction des règles définies dans la ressource Ingress.
Pour accéder à un service de type LoadBalancer via Ingress, il faut:
-
Créer un service de type
LoadBalancerpour votre application. Le fournisseur Kubernetes dans le cloud attribuera une IP externe à ce service.// service.yaml apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer -
Créer une ressource
Ingressqui routage le trafic vers ce service.// ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.example.com # Ou un autre domaine/chemin où l'application sera accessible http: paths: - path: / pathType: Prefix backend: service: name: my-app-service # Nom de votre service LoadBalancer port: number: 80 # Port du service vers lequel le trafic sera redirigé -
S'assurer que le contrôleur Ingress est installé et fonctionne dans le cluster. Le contrôleur Ingress (par exemple, Nginx Ingress Controller, Traefik) écoutera l'IP externe qui lui est attribuée et redirigera les requêtes vers
myapp.example.comvers le servicemy-app-service.
Ainsi, l'accès à l'application est assuré via l'IP externe du contrôleur Ingress, et non directement via l'IP externe du service de type LoadBalancer (même si Ingress peut utiliser ce LoadBalancer pour accéder aux pods).