Sobes.tech
Middle

Hoe krijg je toegang tot het externe IP-adres van de load balancer service in de Ingress-controller?

sobes.tech AI

Antwoord van AI

In de Ingress-controller wordt niet rechtstreeks naar het externe IP-adres van een LoadBalancer-achtig service verwezen. De Ingress-controller fungeert als toegangspunt en routeert het verkeer naar verschillende services op basis van de regels die in de Ingress-resource zijn gedefinieerd.

Om via Ingress toegang te krijgen tot een LoadBalancer-achtig service, moet je:

  1. Een service van het type LoadBalancer maken voor je applicatie. De Kubernetes-cloudprovider wijst dit service een extern IP-adres toe.

    // 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. Een Ingress-resource maken die het verkeer naar deze service routeert.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Of een ander domein/pad waar de applicatie bereikbaar is
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Naam van je LoadBalancer-service
                port:
                  number: 80 # Poort van de service waar het verkeer naartoe wordt geleid
    
  3. Ervoor zorgen dat de Ingress-controller is geïnstalleerd en werkt in de cluster. De Ingress-controller (bijvoorbeeld Nginx Ingress Controller, Traefik) luistert op het toegewezen externe IP en leidt verzoeken door naar myapp.example.com naar de service my-app-service.

Op deze manier wordt de toegang tot de applicatie verzekerd via het externe IP van de Ingress-controller, en niet rechtstreeks via het externe IP van de LoadBalancer-achtige service (hoewel Ingress deze LoadBalancer kan gebruiken om toegang te krijgen tot de pods).