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:
-
Einen Dienst vom Typ
LoadBalancerfü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 -
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 -
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.coman den Dienstmy-app-serviceweiter.
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).