απαιτήσεις: Θέλω να εκχωρήσω μια ανεξάρτητη διεύθυνση IP LAN στο κοντέινερ Docker μέσω της υπηρεσίας DHCP του δρομολογητή, έτσι ώστε η αναπτυγμένη εφαρμογή ASP.NET Core να μπορεί να αναπτυχθεί σε πολλούς διακομιστές (η εφαρμογή πρέπει να αναπτυχθεί σε πολλούς διακομιστές για να επιτευχθεί υψηλή διαθεσιμότητα) και στη συνέχεια να μπορούν να μεταφερθούν μεταξύ τους. Ορισμένες εφαρμογές, ειδικά οι εφαρμογές παλαιού τύπου ή αυτές που παρακολουθούν την κυκλοφορία του δικτύου, αναμένουν να συνδεθούν απευθείας στο φυσικό δίκτυο. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε το πρόγραμμα οδήγησης δικτύου macvlan για να εκχωρήσετε μια διεύθυνση MAC στη διεπαφή εικονικού δικτύου κάθε κοντέινερ, κάνοντάς το να μοιάζει με μια φυσική διεπαφή δικτύου που συνδέεται απευθείας στο φυσικό δίκτυο. Σε αυτήν την περίπτωση, πρέπει να καθορίσετε μια φυσική διεπαφή στον κεντρικό υπολογιστή Docker για macvlan. Και. υποδίκτυα και πύλες του Macvlan. Μπορείτε ακόμη και να απομονώσετε το δίκτυό σας με διαφορετική φυσική διεπαφή δικτύου.
Αρχικά, πρέπει να ρυθμίσετε το φυσικό NIC του κεντρικού μηχανήματοςΕπιτρέπει τη λειτουργία "ακατάσχετη λειτουργία".Για παράδειγμα, χρησιμοποιώντας το ESXI ως παράδειγμα, ρυθμίστε έναν εικονικό διακόπτη ως εξής:
Το περιβάλλον του συστήματος έχει ως εξής:
CentOS Linux έκδοση 7.9.2009 (Core) Docker έκδοση 20.10.20, build 9fdeb9c
Εγκαταστήστε την υπηρεσία Docker στον κεντρικό υπολογιστή CentOS 7. (παραλείπεται)
Εγκαθιδρύωnet.ipv4.ip_forward = 1, μπορείτε να δείτε την τρέχουσα διαμόρφωση μέσω του sysctl -a, εάν δεν είναι 1, τροποποιήστε το σε 1, το σεμινάριο παραλείπεται. Ο κύριος σκοπός είναι να προσδιοριστεί εάν οι πληροφορίες που λαμβάνονται από μία κάρτα δικτύου μπορούν να μεταβιβαστούν σε άλλες κάρτες δικτύου όταν ο κεντρικός υπολογιστής Linux έχει πολλές κάρτες δικτύου και εάν έχει οριστεί σε 1, μπορεί να πραγματοποιηθεί προώθηση πακέτων.
Όταν εγκατασταθεί η υπηρεσία Docker, δημιουργήστε ένα δίκτυο macvlan με την ακόλουθη εντολή:
--ip-range: Αποφάσισε να εκχωρήσει το υποσύνολο στο Docker 192.168.50.192/27, το οποίο είναι ένα εύρος 32 διευθύνσεων που ξεκινούν από 192.168.50.192 και τελειώνουν σε 192.168.50.223. --gateway: Ορίστε τη διεύθυνση πύλης, συνήθως τη διεύθυνση IP του δρομολογητή, ορίστε την σύμφωνα με την πραγματική σας κατάσταση -o γονέας: Η γονική διεπαφή, η οποία είναι το όνομα της φυσικής κάρτας NIC του κεντρικού υπολογιστή, μπορεί να προβληθεί μέσω της IP A σύμφωνα με την πραγματική κατάσταση.
Αφού ολοκληρωθεί η δημιουργία, μπορείτε να το δείτε με την ακόλουθη εντολή:
Δοκιμάστε να ξεκινήσετε ένα κοντέινερ busybox και να ρυθμίσετε ένα δίκτυο με το macvlan που δημιουργήθηκε πρόσφατα με την ακόλουθη εντολή:
Συμβουλή: Εάν χρειάζεται, δώστε το δοχείοΓια να ορίσετε τη διεύθυνση IP, χρησιμοποιήστε την παράμετρο --ip, για παράδειγμα: --ip=192.168.50.210
Μπορείτε να προβάλετε τη διεύθυνση IP ενός κοντέινερ χρησιμοποιώντας την ακόλουθη εντολή:
Φυσικά, μπορείτε επίσης να μπείτε μέσα στο κοντέινερ για να το δείτε, με την ακόλουθη εντολή:
ΕμείςΧρησιμοποιώντας άλλα μηχανήματα στο LAN, δοκιμάστε να κάνετε ping στη διεύθυνση IP του κοντέινερ, μπορείτε να διαπιστώσετε ότι μπορείτε να κάνετε ping, όπως φαίνεται στο παρακάτω σχήμα:
Κοιτάζοντας τον πίνακα αντιστοίχισης IP και MAC του δρομολογητή, μπορείτε να δείτε ότι η διεύθυνση MAC/IP του κοντέινερ docker είναι η ίδια με αυτή του δρομολογητή, όπως φαίνεται στο παρακάτω σχήμα:
Δοκιμάστε να ξεκινήσετε ξανά ένα κοντέινερ Redis και να ρυθμίσετε το νέο δίκτυο MacVLAN με την ακόλουθη εντολή:
Ο ίδιος ο κεντρικός υπολογιστής CentOS έχει επίσης μια εφαρμογή redis που εκτελείται και χρησιμοποιεί επίσης τη θύρα 6379 και δημιουργούμε μια εφαρμογή κοντέινερ redis που χρησιμοποιεί επίσης τη θύρα 6379, δηλαδήΗ ίδια θύρα κεντρικού υπολογιστή 6379 ακούγεται από δύο διαφορετικές IP, προσπαθήστε να δείτε αν λειτουργεί.
Όλα τα αποτελέσματα των δοκιμών λειτουργούν κανονικά, όπως φαίνεται στο παρακάτω σχήμα:
Πόροι
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
|