Sobes.tech
Middle

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:

  1. Créer un service de type LoadBalancer pour 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
    
  2. Créer une ressource Ingress qui 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é
    
  3. 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.com vers le service my-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).