Sobes.tech
Middle

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:

  1. Să creați un serviciu de tip LoadBalancer pentru 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
    
  2. Să creați o resursă Ingress care 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
    
  3. 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.com către serviciul my-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).