Sobes.tech
Middle

Wie greift man auf die externe IP-Adresse des auf Load Balancer Service basierenden Dienstes im Ingress-Controller zu?

sobes.tech KI

Antwort von AI

Im Ingress-Controller wird nicht direkt auf die externe IP eines LoadBalancer-Dienstes zugegriffen. Der Ingress-Controller fungiert als Eingangspunkt und leitet den Datenverkehr basierend auf den im Ingress-Ressource definierten Regeln an verschiedene Dienste weiter.

Um über Ingress auf einen LoadBalancer-Dienst zuzugreifen, muss man:

  1. Einen Dienst vom Typ LoadBalancer für Ihre Anwendung erstellen. Der Cloud-Anbieter von Kubernetes weist diesem Dienst eine externe IP zu.

    // 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. Eine Ingress-Ressource erstellen, die den Datenverkehr zu diesem Dienst routet.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Oder eine andere Domain/Pfad, unter dem die Anwendung erreichbar ist
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Name Ihres LoadBalancer-Dienstes
                port:
                  number: 80 # Port des Dienstes, an den der Datenverkehr weitergeleitet wird
    
  3. Sicherstellen, dass der Ingress-Controller installiert und im Cluster aktiv ist. Der Ingress-Controller (z.B. Nginx Ingress Controller, Traefik) hört auf die ihm zugewiesene externe IP und leitet Anfragen an myapp.example.com an den Dienst my-app-service weiter.

Auf diese Weise wird der Zugriff auf die Anwendung über die externe IP des Ingress-Controllers gewährleistet, nicht direkt über die externe IP des LoadBalancer-Dienstes (obwohl Ingress diesen LoadBalancer für den Zugriff auf die Pods nutzen kann).