Πώς να προσεγγίσετε τη δημόσια IP διεύθυνση της υπηρεσίας με βάση τον load balancer (load balancer service) στον ελεγκτή Ingress;
sobes.tech AI
Απάντηση από AI
Στον ελεγκτή Ingress, δεν γίνεται άμεση πρόσβαση στη δημόσια IP ενός τύπου LoadBalancer υπηρεσίας. Ο ελεγκτής Ingress λειτουργεί ως σημείο εισόδου και δρομολογεί την κυκλοφορία σε διάφορες υπηρεσίες βάσει των κανόνων που ορίζονται στην πόρο Ingress.
Για να αποκτήσετε πρόσβαση σε μια υπηρεσία τύπου LoadBalancer μέσω Ingress, πρέπει:
-
Να δημιουργήσετε μια υπηρεσία τύπου
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 -
Να δημιουργήσετε έναν πόρο
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 # Πόρτα της υπηρεσίας στην οποία θα γίνει η ανακατεύθυνση -
Να βεβαιωθείτε ότι ο ελεγκτής Ingress έχει εγκατασταθεί και λειτουργεί στο cluster. Ο ελεγκτής Ingress (π.χ., Nginx Ingress Controller, Traefik) θα ακούει στη δημόσια IP που του έχει ανατεθεί και θα δρομολογεί τα αιτήματα στο
myapp.example.comστην υπηρεσίαmy-app-service.
Έτσι, η πρόσβαση στην εφαρμογή παρέχεται μέσω της δημόσιας IP του ελεγκτή Ingress, και όχι άμεσα μέσω της δημόσιας IP της υπηρεσίας τύπου LoadBalancer (αν και ο Ingress μπορεί να χρησιμοποιήσει αυτό το LoadBalancer για πρόσβαση στα pods).