Διαμόρφωση στατικής δικτύωσης και IPv6 στο CentOS 7
Το VULTR έκανε πρόσφατα αλλαγές στο τέλος του και όλα θα πρέπει τώρα να λειτουργούν σωστά με το NetworkManager ενεργοποιημένο. Εάν θέλετε να απενεργοποιήσετε
Το Docker Swarm μετατρέπει τους μεμονωμένους διακομιστές σας σε ένα σύμπλεγμα υπολογιστών, διευκολύνοντας την κλιμάκωση, την υψηλή διαθεσιμότητα και την εξισορρόπηση φορτίου. Το πρόγραμμα εξισορρόπησης φορτίου Swarm εφαρμόζει μια στρατηγική εξισορρόπησης φορτίου κυκλικής ροής και αυτό μπορεί να επηρεάσει τη σωστή λειτουργία εφαρμογών με κατάσταση (παλαιού τύπου) οι οποίες απαιτούν κάποια μορφή σταθερών περιόδων σύνδεσης για να επιτρέψουν μια ρύθμιση υψηλής διαθεσιμότητας με πολλαπλές παρουσίες. Το Docker Enterprise Edition υποστηρίζει τη σταθερή συνεδρία Layer-7, αλλά σε αυτόν τον οδηγό θα επικεντρωθούμε στη δωρεάν (CE) έκδοση του Docker. Για την υλοποίηση σταθερών συνεδριών θα χρησιμοποιήσουμε το Traefik.
Σε αυτό το σεμινάριο θα χρησιμοποιήσουμε δύο περιπτώσεις Vultr με ιδιωτικές διευθύνσεις IP 192.168.0.100 και 192.168.0.101, και οι δύο είναι κόμβοι διαχείρισης Docker Swarm (που δεν είναι ιδανικός για παραγωγή, αλλά αρκετός για αυτό το σεμινάριο).
Αυτό το σεμινάριο χρησιμοποιεί την jwilder/whoami
εικόνα docker ως εφαρμογή επίδειξης. Αυτό το απλό κοντέινερ θα ανταποκρίνεται σε μια κλήση REST με το όνομα του κοντέινερ που αποκρίνεται, καθιστώντας πολύ εύκολο τον έλεγχο εάν οι σταθερές συνεδρίες λειτουργούν. Αυτή η εικόνα χρησιμοποιείται μόνο για σκοπούς επίδειξης και πρέπει να αντικατασταθεί από την εικόνα της δικής σας εφαρμογής. Το whoami-service
έχει ρυθμιστεί ως εξής:
sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Εάν στη συνέχεια κάναμε curl
το whoami
τελικό σημείο REST στο http://192.168.0.100/
, μπορούμε να δούμε την εξισορρόπηση φορτίου κυκλικής τροχιάς του Docker Swarm στην εργασία.
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
Δεν χρειάζεται να το δοκιμάσετε με σύγχρονα προγράμματα περιήγησης όπως το Chrome ή το Firefox, επειδή έχουν σχεδιαστεί για να διατηρούν τις συνδέσεις ζωντανές (ανοιχτές) και το Docker Swarm load-balancer θα μεταβαίνει στο άλλο κοντέινερ μόνο σε κάθε νέα σύνδεση. Εάν θέλετε να το δοκιμάσετε με ένα πρόγραμμα περιήγησης, θα πρέπει να περιμένετε τουλάχιστον 30 δευτερόλεπτα για να κλείσει η σύνδεση πριν ανανεώσετε ξανά.
Το Traefik υποστηρίζει εγγενώς το Docker Swarm, μπορεί να ανιχνεύει και να καταχωρεί ή να καταργεί την εγγραφή κοντέινερ on-the-fly και επικοινωνεί με την εφαρμογή σας μέσω του εσωτερικού δικτύου επικάλυψης. Η Traefik χρειάζεται κάποιες πληροφορίες σχετικά με την αίτησή σας για να μπορέσει να αρχίσει να χειρίζεται αιτήματα για αυτήν. Αυτές οι πληροφορίες παρέχονται στην Traefik προσθέτοντας ετικέτες στην υπηρεσία Swarm σας.
sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service
Η παρακάτω λίστα περιγράφει τι σημαίνει κάθε ετικέτα:
traefik.docker.network
: Το δίκτυο επικάλυψης Docker μέσω του οποίου η Traefik θα επικοινωνεί με την υπηρεσία σας traefik.port
: Η θύρα στην οποία ακούει η υπηρεσία σας (αυτή είναι η εσωτερικά εκτεθειμένη θύρα, όχι η δημοσιευμένη θύρα)traefik.frontend.rule
: PathPrefix:/
δεσμεύει τη ρίζα περιβάλλοντος /
σε αυτήν την υπηρεσία.traefik.backend.loadbalancer.stickiness
: Ενεργοποιεί σταθερές περιόδους λειτουργίας για αυτήν την υπηρεσίαΤώρα που whoami-service
έχει διαμορφωθεί με τις απαιτούμενες ετικέτες, μπορούμε να προσθέσουμε την υπηρεσία Traefik στο σμήνος:
sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
Αυτή η εντολή κάνει πολλά πράγματα ταυτόχρονα. Η παρακάτω λίστα θα εξηγήσει με περισσότερες λεπτομέρειες:
--name traefik
: Το όνομα της νέας μας υπηρεσίας Docker είναι traefik
-p8080:80
: Δημοσιεύουμε τη θύρα του Traefik 80
σε λιμάνι 8080
(η θύρα 80
χρησιμοποιείται ήδη από την εταιρεία μας whoami-service
)-p9090:8080
: Δημοσιεύουμε τη διεπαφή ιστού της Traefik στη θύρα 9090
--mount ...
: Τοποθετούμε το Docker Socket στο κοντέινερ έτσι ώστε η Traefik να έχει πρόσβαση στο χρόνο εκτέλεσης Docker του κεντρικού υπολογιστή --global
: Θέλουμε κοντέινερ Traefik σε κάθε κόμβο διαχειριστή για λόγους υψηλής διαθεσιμότητας --constraint 'node.role == manager'
: Θέλουμε το Traefik να εκτελείται μόνο σε κόμβους διαχειριστή επειδή οι κόμβοι εργαζομένων δεν μπορούν να παρέχουν στην Traefik τις πληροφορίες που χρειάζεται. Για παράδειγμα, docker service ls
σε έναν κόμβο εργάτη δεν λειτουργεί, οπότε ο Traefik δεν θα μπορούσε καν να ανακαλύψει ποιες υπηρεσίες εκτελούνται--network whoaminet
: Συνδέει το Traefik στο ίδιο δίκτυο με το δικό μας whoami-service
, διαφορετικά δεν μπορούν να συνδεθούν. Είπαμε προηγουμένως στην Traefik να συνδεθεί στην υπηρεσία μας μέσω αυτού του δικτύου με την traefik.docker.network
ετικέταtraefik
: Πείτε στον docker να χρησιμοποιήσει την πιο πρόσφατη εικόνα αποβάθρας Traefik για αυτήν την υπηρεσία--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: Τα ορίσματα γραμμής εντολών μεταβιβάστηκαν απευθείας στο Traefik για να του επιτραπεί η εκτέλεση σε λειτουργία σμήνος Docker ( --loglevel=DEBUG
είναι προαιρετικό εδώ, αλλά ενδιαφέρον κατά τη διάρκεια της εγκατάστασης και για αυτό το σεμινάριο)Το μόνο που μένει να κάνετε είναι να ανοίξετε τις απαραίτητες θύρες στο τείχος προστασίας CentOS:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
Μόλις ξεκινήσει το Traefik, μπορείτε να δείτε στα αρχεία καταγραφής ότι ο Traefik ανακαλύπτει τα δύο whoami
κοντέινερ. Επίσης, εξάγει το όνομα του cookie που θα χρησιμοποιήσει για να χειριστεί τη σταθερή περίοδο λειτουργίας:
time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"
Αν κουμπώσουμε, http://192.168.0.100:8080
μπορούμε να δούμε ότι _a49bc
έχει οριστεί ένα νέο cookie :
curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
* Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact
Εάν, σε επόμενες κλήσεις, στείλουμε αυτό το cookie στην Traefik, θα προωθούμαστε πάντα στο ίδιο κοντέινερ:
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
Το cookie δεν περιέχει τίποτα εκτός από την εσωτερική, (επικάλυψη) διεύθυνση IP του κοντέινερ στο οποίο θα πρέπει να στείλει η Traefik για να ζητήσει. Εάν αλλάξετε την τιμή του cookie σε, http://10.0.0.4:8000
τότε το αίτημα θα προωθηθεί ουσιαστικά στο άλλο κοντέινερ. Εάν το cookie δεν αποσταλεί ποτέ ξανά στο Traefik, τότε η σταθερή περίοδος λειτουργίας δεν θα λειτουργήσει και τα αιτήματα θα εξισορροπηθούν μεταξύ των κοντέινερ της εφαρμογής και των κοντέινερ Traefik.
Αυτό είναι το μόνο που χρειάζεται για να ρυθμίσετε το Layer 7 Sticky Sessions στο Docker CE στο CentOS 7.
Το VULTR έκανε πρόσφατα αλλαγές στο τέλος του και όλα θα πρέπει τώρα να λειτουργούν σωστά με το NetworkManager ενεργοποιημένο. Εάν θέλετε να απενεργοποιήσετε
Τι χρειάζεστε Ένα Vultr VPS με τουλάχιστον 1 GB μνήμης RAM. Πρόσβαση SSH (με δικαιώματα root/διαχειριστή). Βήμα 1: Εγκατάσταση του BungeeCord Πρώτα πράγματα
Εισαγωγή Η εργασία σε συστήματα Linux σημαίνει ότι κάποιος χρησιμοποιεί τη γραμμή εντολών πιο συχνά. Πρέπει επίσης να πληκτρολογήσετε μεγάλα ονόματα καταλόγου ξανά και ξανά
Εισαγωγή Το RethinkDB είναι μια βάση δεδομένων NoSQL που αποθηκεύει δεδομένα ως έγγραφα JSON. Διαθέτει μια εξαιρετικά διαισθητική γλώσσα ερωτημάτων και διαθέτει χαρακτηριστικά που είναι κοινά διαθέσιμα i
Το DirectAdmin είναι ένας ιδιόκτητος πίνακας ελέγχου που βασίζεται στο web που μπορείτε να εγκαταστήσετε στον διακομιστή σας, ο οποίος προσφέρει μια ποικιλία λειτουργιών διαχείρισης συστήματος. Σε αυτό
Αυτό το άρθρο περιγράφει τη διαδικασία εκκίνησης για συστήματα CentOS/RHEL 7.x. Αν και μπορεί να παραμείνει παρόμοιο με τις προηγούμενες εκδόσεις, με το RHEL 7, το systemd είναι
Εισαγωγή Το PostgreSQL είναι το πιο προηγμένο σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων ανοιχτού κώδικα στον κόσμο (RDBMS). Είναι συμβατό με τα πρότυπα ANSI SQL:2008 και
Η διαχείριση των χρηστών μπορεί να είναι μια τρομακτική εργασία: από την καθημερινή συντήρηση, τους κινδύνους ασφαλείας και την έλλειψη ενδελεχούς ηλεκτρονικής τεκμηρίωσης. Αυτό το άρθρο θα σας βοηθήσει να ξεκινήσετε
Η τεχνολογία Docker container σάς επιτρέπει να εκτελείτε εφαρμογές σε ένα συγκεκριμένο και απομονωμένο περιβάλλον. Το Docker Community Edition (CE) είναι το νέο όνομα για το fre
Εισαγωγή Ένας πρόσφατα ενεργοποιημένος διακομιστής CentOS 7 πρέπει να προσαρμοστεί για να μπορέσει να χρησιμοποιηθεί ως σύστημα παραγωγής. Σε αυτό το άρθρο, το πιο σημαντικό
Εισαγωγή Σε αυτό το σεμινάριο, καλό είναι να εγκαταστήσετε το Speedtest-cli για να ελέγξετε την ταχύτητα δικτύου του διακομιστή σας. Το Speedtest-cli είναι μια διεπαφή γραμμής εντολών για το th
Η διαχείριση του διακομιστή σας μόνο με SSH μπορεί να είναι εκφοβιστική. Το καλό για εμάς είναι ότι το Vultr έχει μια επιλογή View Console. Για να χρησιμοποιήσετε πλήρως την κονσόλα Vultrs VNC
Εισαγωγή Για τους διαχειριστές διακομιστών, είναι σημαντικό να ρυθμίζουν και να διατηρούν σωστά την ώρα στους διακομιστές. Ο εσφαλμένα ρυθμισμένος χρόνος θα προκαλέσει χάος εντός του ου
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Foreman είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο που σας βοηθά με τη διαμόρφωση και τη διαχείριση φυσικών και εικονικών διακομιστών. Forema
Εισαγωγή Το Sysctl επιτρέπει στο χρήστη να ρυθμίσει με ακρίβεια τον πυρήνα χωρίς να χρειάζεται να ξαναχτίσει τον πυρήνα. Θα εφαρμόσει επίσης τις αλλαγές αμέσως, έτσι ο διακομιστής κέρδισε
Σε αυτό το σεμινάριο, θα καλύψουμε τη διαδικασία εγκατάστασης και χρήσης nethogs στο CentOS 6x x64. Το nethogs είναι ένα εργαλείο παρακολούθησης δικτύου που επιτρέπει στο Networ
Το CentOS Web Panel ή CWP είναι ένας πίνακας ελέγχου φιλοξενίας ανοιχτού κώδικα που έχει σχεδιαστεί για γρήγορη και εύκολη διαχείριση ενός διακομιστή. Περιλαμβάνει όλα τα χαρακτηριστικά o
Υπάρχουν πολλές λύσεις εκεί έξω που αντικαθιστούν το Microsoft Exchange με μια λύση Linux, αλλά όλες είχαν ένα πρόβλημα που δεν μου άρεσε πολύ. Όταν λαμβάνω
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Η συνεχής ενοποίηση είναι μια πρακτική ανάπτυξης λογισμικού DevOps που επιτρέπει στους προγραμματιστές να συγχωνεύουν συχνά
Το Glowing Bear είναι μια διεπαφή ιστού για τον πελάτη WeeChat IRC και προσπαθεί να είναι μια σύγχρονη διεπαφή. Με τα χαρακτηριστικά του, όπως κλικ για αναφορά, αντικατάσταση emoji
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.
Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.
Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.
Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…
Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.
Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.
Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.
Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.
Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα