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 (προαιρετικά, επιλέγεται αυτόματα αν δεν οριστεί)