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:
-
Een service van het type
LoadBalancermaken 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 -
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 -
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.comnaar de servicemy-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).