Sobes.tech
Junior

Τι είναι το NodePort και ποια λειτουργικότητα παρέχει;

sobes.tech AI

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

Το NodePort είναι ένας τύπος υπηρεσίας στο Kubernetes που ανοίγει μια θύρα σε κάθε Κόμβο του κλάστερ. Η κυκλοφορία που αποστέλλεται σε αυτήν τη θύρα σε οποιονδήποτε Κόμβο ανακατευθύνεται στα Pods που σχετίζονται με αυτήν την Υπηρεσία.

Λειτουργικότητα του NodePort:

  • Αλλαγή συμπεριφοράς: Παρέχει εξωτερική πρόσβαση στην υπηρεσία. Η κυκλοφορία εκτός του κλάστερ μπορεί να φτάσει στην υπηρεσία μέσω οποιασδήποτε IP του Κόμβου και του διαμορφωμένου NodePort.
  • Θύρες:
    • NodePort: Προεπιλεγμένο εύρος 30000-32767. Μπορεί να αλλάξει μέσω ρυθμίσεων κλάστερ.
    • TargetPort: Θύρα στο Pod στην οποία ανακατευθύνεται η κυκλοφορία.
    • Port: Θύρα της Υπηρεσίας εντός του κλάστερ.
Θύρα Περιγραφή Χρήση
NodePort Ανοιχτή θύρα σε κάθε Κόμβο Εξωτερική πρόσβαση στην υπηρεσία
TargetPort Θύρα στο Pod Ανακατεύθυνση κυκλοφορίας από την Υπηρεσία στο Pod
Port Θύρα της Υπηρεσίας εντός του κλάστερ Εσωτερική επικοινωνία μεταξύ υπηρεσιών
  • Διαθεσιμότητα: Η υπηρεσία είναι προσβάσιμη στη διεύθυνση NodeIP:NodePort από οποιονδήποτε Κόμβο στο κλάστερ.
  • Περιορισμοί:
    • Απαιτείται το άνοιγμα του NodePort σε κάθε Κόμβο.
    • Δεν είναι κατάλληλο για περιβάλλοντα παραγωγής λόγω του σταθερού εύρους θυρών και της ανάγκης να γνωρίζετε τη διεύθυνση IP του Κόμβου.
    • Είναι πιο δύσκολο στην κλιμάκωση σε σύγκριση με LoadBalancer ή Ingress.

Παράδειγμα YAML για NodePort Service:

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  type: NodePort
  selector:
    app: my-app # Επιλογέας για επιλογή Pods
  ports:
    - protocol: TCP
      port: 80 # Θύρα της Υπηρεσίας
      targetPort: 8080 # Θύρα στο Pod
      nodePort: 31000 # Ανατεθειμένο NodePort (προαιρετικά, επιλέγεται αυτόματα αν δεν οριστεί)