Sobes.tech
Middle

Πώς να προσεγγίσετε τη δημόσια IP διεύθυνση της υπηρεσίας με βάση τον load balancer (load balancer service) στον ελεγκτή Ingress;

sobes.tech AI

Απάντηση από AI

Στον ελεγκτή Ingress, δεν γίνεται άμεση πρόσβαση στη δημόσια IP ενός τύπου LoadBalancer υπηρεσίας. Ο ελεγκτής Ingress λειτουργεί ως σημείο εισόδου και δρομολογεί την κυκλοφορία σε διάφορες υπηρεσίες βάσει των κανόνων που ορίζονται στην πόρο Ingress.

Για να αποκτήσετε πρόσβαση σε μια υπηρεσία τύπου LoadBalancer μέσω Ingress, πρέπει:

  1. Να δημιουργήσετε μια υπηρεσία τύπου LoadBalancer για την εφαρμογή σας. Ο πάροχος Kubernetes στο cloud θα της αναθέσει μια δημόσια IP.

    // 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. Να δημιουργήσετε έναν πόρο Ingress που θα δρομολογεί την κυκλοφορία σε αυτήν την υπηρεσία.

    // ingress.yaml
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
      - host: myapp.example.com # Ή άλλο domain/μονοπάτι όπου θα είναι προσβάσιμη η εφαρμογή
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app-service # Όνομα της υπηρεσίας LoadBalancer
                port:
                  number: 80 # Πόρτα της υπηρεσίας στην οποία θα γίνει η ανακατεύθυνση
    
  3. Να βεβαιωθείτε ότι ο ελεγκτής Ingress έχει εγκατασταθεί και λειτουργεί στο cluster. Ο ελεγκτής Ingress (π.χ., Nginx Ingress Controller, Traefik) θα ακούει στη δημόσια IP που του έχει ανατεθεί και θα δρομολογεί τα αιτήματα στο myapp.example.com στην υπηρεσία my-app-service.

Έτσι, η πρόσβαση στην εφαρμογή παρέχεται μέσω της δημόσιας IP του ελεγκτή Ingress, και όχι άμεσα μέσω της δημόσιας IP της υπηρεσίας τύπου LoadBalancer (αν και ο Ingress μπορεί να χρησιμοποιήσει αυτό το LoadBalancer για πρόσβαση στα pods).