Cum se accesează adresa IP externă a serviciului bazat pe load balancer (load balancer service) în controlerul Ingress?
sobes.tech AI
Răspuns de la AI
În controlerul Ingress, nu se accesează direct IP-ul extern al unui serviciu de tip LoadBalancer. Controlerul Ingress acționează ca punct de intrare și direcționează traficul către diferite servicii pe baza regulilor definite în resursa Ingress.
Pentru a accesa un serviciu de tip LoadBalancer prin Ingress, trebuie:
-
Să creați un serviciu de tip
LoadBalancerpentru aplicația dvs. Furnizorul Kubernetes în cloud va aloca acestui serviciu o adresă IP externă.// 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 -
Să creați o resursă
Ingresscare va direcționa traficul către acest serviciu.// ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.example.com # Sau alt domeniu/cale unde va fi accesibilă aplicația http: paths: - path: / pathType: Prefix backend: service: name: my-app-service # Numele serviciului LoadBalancer port: number: 80 # Portul serviciului către care se va face redirecționarea -
Să vă asigurați că controlerul Ingress este instalat și funcționează în cluster. Controlerul Ingress (de exemplu, Nginx Ingress Controller, Traefik) va asculta pe IP-ul extern alocat și va redirecționa solicitările către
myapp.example.comcătre serviciulmy-app-service.
Astfel, accesul la aplicație se asigură prin IP-ul extern al controlerului Ingress, nu direct prin IP-ul extern al serviciului de tip LoadBalancer (deși Ingress poate folosi acest LoadBalancer pentru a accesa podurile).