Με το VPC CNI, ένα Pod μπορεί να έχει διεύθυνση από το VPC, και ένας χρήστης VPN με τη σωστή διαδρομή μπορεί να το φτάσει απευθείας. Αυτό κάνει την άμεση πρόσβαση στο Pod να μοιάζει με την απλούστερη επιλογή, και πράγματι είναι, μέχρι να αντικατασταθεί το Pod. Η διεύθυνση που θυμάται ένας χρήστης πρέπει να ανήκει στην εφαρμογή, όχι σε ένα αντίγραφο. Η σύγκριση των τριών σημείων εισόδου καταλήγει στο ποιο αντικείμενο κατέχει τη διεύθυνση και τι πρέπει να συνεχίσει να λειτουργεί όταν μετακινείται το φορτίο εργασίας.

Επιλέξτε πρώτα με βάση τον κύκλο ζωής και μετά με βάση το τι πρέπει να κάνει το δίκτυο ώστε το σημείο εισόδου να είναι προσβάσιμο.

Τρεις είσοδοι, τρεις κύκλοι ζωής

Μια διεύθυνση Pod IP ανήκει σε ένα Pod: εκχωρείται μαζί του και απελευθερώνεται όταν τελειώσει. Ένα ClusterIP ανήκει σε ένα Service και είναι εικονικό, έχει νόημα μόνο όπου υπάρχει η δρομολόγηση υπηρεσιών του συμπλέγματος. Ένας εσωτερικός εξισορροπητής φόρτου ανήκει σε έναν πόρο cloud που ο ελεγκτής του συμπλέγματος προγραμματίζει με backends. Αυτά τα μοντέλα ιδιοκτησίας προβλέπουν την αποτυχία που θα πάρετε: μια παρωχημένη διεύθυνση, ένα όνομα που δεν φτάνεται ή ένα σύνολο backends που έχει ξεπεραστεί.

Γράψτε τη σύγκριση πριν επιλέξετε. Όταν ο ιδιοκτήτης και η αποτυχία έχουν ονομαστεί, η επιλογή συνήθως γίνεται μόνη της.

EntryOwnerFailure when the workload moves
Pod IPThe PodAddress changes and saved links break
ClusterIPThe ServiceVirtual address with no meaning outside cluster routing
Internal balancerCloud resource plus controllerBackends update, but the DNS view is yours to maintain

Άμεση πρόσβαση στο Pod: χρήσιμη, προσωρινή

Η άμεση πρόσβαση είναι πραγματικά χρήσιμη για έναν ελεγχόμενο έλεγχο: ένας διαχειριστής, μία σύντομη συνεδρία, μία συγκεκριμένη θύρα. Είναι όμως κακή συμφωνία για τους χρήστες, γιατί η διεύθυνση είναι λεπτομέρεια υλοποίησης που αλλάζει σε κάθε ανάπτυξη. Και το να την καταγράψεις σε ένα wiki είναι ο τρόπος με τον οποίο μια υπηρεσία που δουλεύει γίνεται φήμη.

Προσκαλεί επίσης ευρείς κανόνες. Η άδεια σε έναν διαχειριστή να φτάσει ένα Pod δεν είναι άδεια για κάθε διεύθυνση στο υποδίκτυο του κόμβου, και συνήθως γράφεται η δεύτερη.

ClusterIP: περιορισμένο στο σύμπλεγμα εξ ορισμού

Ένα ClusterIP λειτουργεί επειδή το dataplane του συμπλέγματος προγραμματίζει δρομολόγηση γι’ αυτό μέσα στο σύμπλεγμα. Από ένα φορητό υπολογιστή στο VPN η διεύθυνση δεν σημαίνει τίποτα, εκτός αν κάτι την εκθέτει σκόπιμα. Ένα όνομα που τελειώνει σε svc.cluster.local ανήκει στο DNS του συμπλέγματος, οπότε η αντιγραφή του σε έναν πελάτη με άλλο resolver παράγει ένα όνομα που δεν υπάρχει αντί για σφάλμα δρομολόγησης.

Το ClusterIP παραμένει η σωστή είσοδος για καλούντες μέσα στο σύμπλεγμα, μαζί με άλλα φορτία εργασίας. Απλώς δεν είναι μηχανισμός δημοσίευσης για χρήστες έξω από τον τομέα δρομολόγησης του συμπλέγματος.

Εσωτερικός εξισορροπητής φόρτου: η δημοσιευμένη διαδρομή

Ένας εσωτερικός εξισορροπητής φόρτου σας δίνει μια σταθερή ιδιωτική διεύθυνση και ένα όνομα στο οποίο μπορεί να δείξει η δική σας ζώνη, ενώ ο ελεγκτής κρατά το σύνολο backends ενημερωμένο, όπως περιγράφει ο οδηγός εξισορρόπησης φόρτου του EKS. Αυτή είναι η είσοδος που επιβιώνει από μια συνηθισμένη αντικατάσταση Pod χωρίς να επεξεργαστεί κανείς έγγραφο. Κοστίζει έναν πόρο cloud, μια διαμόρφωση ελεγκτή και μια διαδρομή από το VPN, και αυτά είναι τα μέρη που οι άνθρωποι υποτιμούν.

Χρησιμοποιήστε το μοντέλο ελεγκτή που εκτελεί πραγματικά το σύμπλεγμα. Οι σχολιασμοί που γράφτηκαν για μία ενσωμάτωση δεν ισχύουν για άλλη.

Ποιος είναι η διεύθυνση προέλευσης

Οι ομάδες ασφαλείας βλέπουν την πηγή που φτάνει στα όριά τους, και αυτή μπορεί να είναι ο συνδεδεμένος πελάτης ή μια μεταφρασμένη διεύθυνση ανάλογα με τη διαδρομή VPN και εξισορρόπησης φόρτου. Σε κόμβους με βάση το EC2, τα συνηθισμένα Pod του VPC CNI κληρονομούν από προεπιλογή τις ομάδες του ENI του κόμβου, ενώ υποστηριζόμενες διαμορφώσεις μπορούν να προσαρτήσουν ομάδες ειδικές για Pod. Γράψτε κανόνες για τη τεκμηριωμένη διαδρομή αντί για μια υποτιθέμενη διεύθυνση φορητού.

Κρατήστε τον δικό του ακροατή και την αυθεντικοποίηση της εφαρμογής ως ξεχωριστούς ελέγχους. Ένας κανόνας δικτύου που επιτρέπει τη ροή δεν είναι απόφαση εξουσιοδότησης και δεν πρέπει να αντιμετωπίζεται ως τέτοια.

Τι να δώσετε στους χρήστες

Δώστε στους χρήστες ένα όνομα υπηρεσίας, όχι μια διεύθυνση. Δημοσιεύστε το όνομα στην ιδιωτική ζώνη, δείξτε το στην εσωτερική είσοδο και μετά δοκιμάστε αντικαθιστώντας ένα backend Pod ενώ ένας πελάτης κρατά το ίδιο όνομα ανοιχτό. Αυτή η άσκηση δοκιμάζει την ιδιότητα που μετράει: να φτάνετε την ίδια εφαρμογή μετά από μια συνηθισμένη ανάπτυξη.

Κρατήστε την άμεση πρόσβαση στο Pod ως τεκμηριωμένη επιχειρησιακή εξαίρεση με δικό της εύρος, μακριά από τις οδηγίες για χρήστες.

Σχετικά άρθρα