Η διαδικασία εγκατάστασης α Σύμπλεγμα Kubernetes επί CentOS 8 είναι σχεδόν παρόμοια με αυτήν του CentOS 7 (που μπορείτε να περάσετε εδώ), αλλά η διαδικασία εδώ έχει μερικές αλλαγές. Αυτές οι αλλαγές, περιστρέφονται κυρίως γύρω από την εγκατάσταση του Λιμενεργάτης.
Ξεκινώντας από CentOS 8 (και κατ 'επέκταση RHEL 8), λιμενεργάτης έχει πλέον αντικατασταθεί από το podman και buildah τα οποία είναι εργαλεία από Κόκκινο καπέλο. Στην πραγματικότητα, το πακέτο docker έχει πλέον αφαιρεθεί από το προεπιλεγμένο αποθετήριο πακέτων.
Με αυτήν την κίνηση, το Κόκκινο καπέλο η ομάδα στοχεύει στην απλοποίηση της διαδικασίας δημιουργίας και χρήσης κοντέινερ, χωρίς να χρειάζονται ειδικά δικαιώματα, ενώ ταυτόχρονα, διατηρεί συμβατότητα με εικόνες docker και τις λειτουργεί χωρίς να χρειάζεται a δαίμονας. Podman υπόσχεται να προσφέρει μεγαλύτερη ευελιξία όταν συνεχίζετε Κουμπερνέτες περιβάλλοντα, αλλά η κριτική επιτροπή παραμένει εκεί έξω.
Για αυτό το άρθρο, θα ακολουθήσουμε τη διαδικασία εγκατάστασης Κουμπερνέτες
πάνω σε CentOS 8 πλατφόρμα, σε λειτουργία Docker-CE (Κοινοτική Έκδοση). Σε ένα μεταγενέστερο άρθρο, θα εκτελέσουμε επίσης μια παρόμοια εγκατάσταση, χρησιμοποιώντας podman για τα δοχεία μας.Οι περισσότεροι κόμβοι έρχονται γενικά με μοναδικά ΜΑΚ διευθύνσεις, ωστόσο, σε ορισμένες μοναδικές περιπτώσεις, μερικές Εικονικές μηχανές μπορεί να έχουν πανομοιότυπες διευθύνσεις MAC. Συνεπώς, συνιστάται να επιβεβαιώσετε ότι το Product_UUID και το ΜΑΚ η διεύθυνση δεν είναι πανομοιότυπη σε κανέναν από τους κόμβους.
Κουμπερνέτες χρησιμοποιεί αυτές τις τιμές για να προσδιορίσει μοναδικά τους κόμβους του συμπλέγματος. Εάν αυτές οι τιμές δεν είναι μοναδικές για κάθε κόμβο, η διαδικασία εγκατάστασης μπορεί να αποτύχει.
Για να ελέγξετε τη διεύθυνση MAC της διεπαφής δικτύου και να τη συγκρίνετε.
# σύνδεσμος ip.
Για να ελέγξετε το product_uuid και συγκρίνετε, εκτελέστε την ακόλουθη εντολή.
# cat/sys/class/dmi/id/product_uuid
Η εγκατάστασή μας έχει σχεδιαστεί για να διαθέτει Master-Node ελέγχοντας το Κόμβοι εργαζομένων. Στο τέλος αυτής της εγκατάστασης, η λογική αρχιτεκτονική μας θα μοιάζει κάπως έτσι.
Κύριος κόμβος - Αυτό το μηχάνημα λειτουργεί γενικά ως το επίπεδο ελέγχου και εκτελεί τη βάση δεδομένων συμπλέγματος και τον διακομιστή API (με τον οποίο επικοινωνεί το kubectl CLI).
Ο 3-κόμβος μας Σύμπλεγμα Kubernetes θα μοιάζει κάπως έτσι:
Για Κουμπερνέτες για να εργαστείτε, θα χρειαστείτε μια μηχανή μεταφοράς εμπορευματοκιβωτίων. Όπως αναφέρθηκε, θα χρησιμοποιήσουμε Docker-CE.
Θα λειτουργήσουν τα ακόλουθα ιδρύματα CentOS 8 Master-Node.
Πάνω στο ___ σου CentOS 8 Master-Node, ορίστε το όνομα κεντρικού συστήματος και ενημερώστε το DNS στο δικό σας /etc/hosts αρχείο.
# hostnamectl set-hostname master-node. # γάτα <> /etc /hosts. 192.168.0.47 κύριος κόμβος. 192.168.0.48 κόμβος-1 εργαζόμενος-κόμβος-1. 192.168.0.49 κόμβος-2 εργαζόμενος-κόμβος-2. ΕΟΦ.
Στη συνέχεια, πινγκ το δικό σας εργάτης-κόμβος-1 και εργάτης-κόμβος-2 για να ελέγξετε αν το ενημερωμένο αρχείο κεντρικού υπολογιστή λειτουργεί σωστά χρησιμοποιώντας το εντολή ping.
# ping 192.168.0.48. # ping 192.168.0.49.
Στη συνέχεια, απενεργοποιήστε Selinux, καθώς αυτό απαιτείται για να επιτρέπεται η πρόσβαση κοντέινερ στο σύστημα αρχείων κεντρικού υπολογιστή, το οποίο απαιτείται από δίκτυα pod και άλλες υπηρεσίες.
# setenforce 0.
Σύνθεση setenforce προς το 0
ορίζει αποτελεσματικά το SELinux σε επιτρεπτό, το οποίο απενεργοποιεί αποτελεσματικά το SELinux μέχρι την επόμενη επανεκκίνηση. Για να το απενεργοποιήσετε εντελώς, χρησιμοποιήστε την παρακάτω εντολή και κάντε επανεκκίνηση.
# sed -i --follow -symlinks's/SELINUX = εκτέλεση/SELINUX = απενεργοποιημένο/g '/etc/sysconfig/selinux. # επανεκκίνηση
Ο Kubernetes χρησιμοποιεί διάφορες θύρες για επικοινωνία και πρόσβαση και αυτές οι θύρες πρέπει να είναι προσβάσιμες από τον Kubernetes και να μην περιορίζονται από το τείχος προστασίας.
Διαμορφώστε τους κανόνες του τείχους προστασίας στις θύρες.
# firewall-cmd --permanent --add-port = 6443/tcp. # firewall-cmd --permanent --add-port = 2379-2380/tcp. # firewall-cmd --permanent --add-port = 10250/tcp. # firewall-cmd --permanent --add-port = 10251/tcp. # firewall-cmd --permanent --add-port = 10252/tcp. # firewall-cmd --permanent --add-port = 10255/tcp. # firewall-cmd-επαναφόρτωση. # modprobe br_netfilter. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
Θα χρειαστεί να προσθέσετε το Λιμενεργάτης αποθετήριο πρώτα καθώς δεν είναι πλέον στην προεπιλεγμένη λίστα πακέτων χρησιμοποιώντας τα παρακάτω dnf config-manager εντολή.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
Επίσης εγκαταστήστε containerd.io πακέτο το οποίο είναι διαθέσιμο ως δαίμονας που διαχειρίζεται τον πλήρη κύκλο ζωής του περιέκτη του συστήματος υποδοχής του, από μεταφορά και αποθήκευση εικόνας στην εκτέλεση κοντέινερ και επίβλεψη σε χώρο αποθήκευσης χαμηλού επιπέδου σε συνημμένα στο δίκτυο και πέρα.
# dnf εγκατάσταση https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Τώρα εγκαταστήστε την πιο πρόσφατη έκδοση του docker-ce πακέτο.
# dnf εγκατάσταση docker-ce.
Τώρα μπορείτε να ενεργοποιήσετε και να ξεκινήσετε την υπηρεσία docker.
# systemctl ενεργοποίηση docker. # systemctl start docker.
Στη συνέχεια, θα πρέπει να προσθέσετε Κουμπερνέτες αποθετήρια με μη αυτόματο τρόπο καθώς δεν εγκαθίστανται από προεπιλογή CentOS 8.
# γάτα </etc/yum.repos.d/kubernetes.repo. [kubernetes] όνομα = Κουμπερνέτες. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. ενεργοποιημένο = 1. gpgcheck = 1. repo_gpgcheck = 1. gpgkey = https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. ΕΟΦ.
Kubeadm σας βοηθά να ξεκινήσετε ένα ελάχιστο βιώσιμο σύμπλεγμα Kubernetes που συμμορφώνεται με τις βέλτιστες πρακτικές. Με kubeadm, η ομάδα σας πρέπει να περάσει τις δοκιμές συμμόρφωσης Kubernetes.
Kubeadm υποστηρίζει επίσης άλλες λειτουργίες κύκλου ζωής συμπλέγματος, όπως αναβαθμίσεις, υποβάθμιση και διαχείριση μάρκων bootstrap. Το Kubeadm είναι επίσης φιλικό προς την ενσωμάτωση με άλλα εργαλεία ενορχήστρωσης όπως Απάντητος και Terraform.
Με το repo πακέτου τώρα έτοιμο, μπορείτε να προχωρήσετε και να εγκαταστήσετε kubeadm πακέτο.
# dnf εγκατάσταση kubeadm -y
Όταν ολοκληρωθεί η εγκατάσταση με επιτυχία, ενεργοποιήστε και ξεκινήστε την υπηρεσία.
# systemctl ενεργοποίηση kubelet. # systemctl εκκίνηση kubelet.
Ο κύριος Kubernetes που λειτουργεί ως ο αεροπλάνο ελέγχου για το σύμπλεγμα εκτελεί μερικές κρίσιμες υπηρεσίες απαραίτητες για το σύμπλεγμα. Ως εκ τούτου, η διαδικασία προετοιμασίας θα πραγματοποιήσει μια σειρά προκαταρκτικών ελέγχων για να διασφαλίσει ότι το μηχάνημα είναι έτοιμο να εκτελέσει το Kubernetes. Αυτοί οι προκαταρκτικοί έλεγχοι εκθέτουν προειδοποιήσεις και εξέρχονται από σφάλματα. kubeadm init στη συνέχεια, πραγματοποιεί λήψη και εγκατάσταση των στοιχείων του επιπέδου ελέγχου συμπλέγματος.
Τώρα ήρθε η ώρα να προετοιμάσετε το κύριο Kubernetes, αλλά πριν από αυτό, πρέπει να απενεργοποιήσετε την ανταλλαγή για να εκτελεστεί "kubeadm init" εντολή.
# ανταλλαγή -α.
Αρχικοποίηση Κουμπερνέτες Το master είναι μια πλήρως αυτοματοποιημένη διαδικασία που ελέγχεται από το "kubeadm init"Εντολή όπως φαίνεται.
# kubeadm init.
Στη συνέχεια, αντιγράψτε την ακόλουθη εντολή και αποθηκεύστε την κάπου, καθώς απαιτείται να εκτελέσουμε αυτήν την εντολή στους κόμβους εργαζομένων αργότερα.
kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash ha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314
Υπόδειξη: Μερικές φορές η παραπάνω εντολή ενδέχεται να προκαλέσει σφάλματα σχετικά με τα ορίσματα που έχουν περάσει, οπότε για να αποφύγετε σφάλματα, πρέπει να αφαιρέσετε το ‘\’
χαρακτήρα και η τελική εντολή σας θα μοιάζει με αυτό.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc823jm68dbc8231468
Μια φορά Κουμπερνέτες αρχικοποιήθηκε με επιτυχία, πρέπει να επιτρέψετε στον χρήστη σας να αρχίσει να χρησιμοποιεί το σύμπλεγμα. Στο σενάριό μας, θα χρησιμοποιούμε τον χρήστη root. Μπορείτε επίσης να ξεκινήσετε το σύμπλεγμα χρησιμοποιώντας sudo user όπως φαίνεται.
Χρησιμοποιώ ρίζα, τρέξιμο:
# mkdir -p $ HOME/.kube. # cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. # chown $ (id -u): $ (id -g) $ HOME/.kube/config.
Για χρήση α sudo ενεργοποιημένος χρήστης, τρέξιμο:
$ mkdir -p $ HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. $ sudo chown $ (id -u): $ (id -g) $ HOME/.kube/config.
Επιβεβαιώστε τώρα ότι το εντολή kubectl ενεργοποιείται.
# kubectl λάβετε κόμβους.
Αυτή τη στιγμή, θα δείτε την κατάσταση του κύριου κόμβου να είναι «NotReady’. Αυτό συμβαίνει επειδή δεν έχουμε ακόμη αναπτύξει το δίκτυο pod στο σύμπλεγμα.
Το δίκτυο pod είναι το δίκτυο επικάλυψης για το σύμπλεγμα, το οποίο αναπτύσσεται πάνω από το τρέχον δίκτυο κόμβων. Έχει σχεδιαστεί για να επιτρέπει τη συνδεσιμότητα σε όλο το λοβό.
Η ανάπτυξη του συμπλέγματος δικτύου είναι μια εξαιρετικά ευέλικτη διαδικασία ανάλογα με τις ανάγκες σας και υπάρχουν πολλές διαθέσιμες επιλογές. Δεδομένου ότι θέλουμε να διατηρήσουμε την εγκατάσταση μας όσο το δυνατόν πιο απλή, θα χρησιμοποιήσουμε Weavenet plugin που δεν απαιτεί καμία ρύθμιση παραμέτρων ή επιπλέον κώδικα και παρέχει μία διεύθυνση IP ανά pod που είναι εξαιρετική για εμάς. Εάν θέλετε να δείτε περισσότερες επιλογές, ελέγξτε εδώ.
Αυτές οι εντολές θα είναι σημαντικές για τη ρύθμιση του δικτύου pod.
# export kubever = $ (έκδοση kubectl | base64 | tr -d '\ n') # kubectl apply -f " https://cloud.weave.works/k8s/net? k8s-version = $ kubever "
Τώρα αν ελέγξετε την κατάσταση του κύριου κόμβου σας, θα πρέπει να είναιΕτοιμος’.
# kubectl λάβετε κόμβους.
Στη συνέχεια, προσθέτουμε το κόμβοι εργαζομένων στο σύμπλεγμα.
Οι παρακάτω οδηγίες θα εκτελεστούν σε καθένα κόμβος εργαζομένου κατά την ένταξη στο σύμπλεγμα Kubernetes.
Ορίστε πρώτα το όνομα κεντρικού υπολογιστή σας εργάτης-κόμβος-1 και εργάτης-κόμβος-2και, στη συνέχεια, προσθέστε τις καταχωρήσεις κεντρικού υπολογιστή στο /etc/hosts αρχείο.
# hostnamectl set-hostname 'node-1' # γάτα <> /etc /hosts. 192.168.0.47 κύριος κόμβος. 192.168.0.48 κόμβος-1 εργαζόμενος-κόμβος-1. 192.168.0.49 κόμβος-2 εργαζόμενος-κόμβος-2. ΕΟΦ.
Στη συνέχεια, πινγκ το δικό σας κύριος κόμβος απο εσενα κόμβοι εργαζομένων για να επιβεβαιώσετε ότι το ενημερωμένο αρχείο κεντρικού υπολογιστή λειτουργεί καλά χρησιμοποιώντας το εντολή ping.
# 192.168.0.47.
Στη συνέχεια, απενεργοποιήστε SElinux και ενημερώστε τους κανόνες τείχους προστασίας.
# setenforce 0. # sed -i --follow -symlinks's/SELINUX = εκτέλεση/SELINUX = απενεργοποιημένο/g '/etc/sysconfig/selinux. # firewall-cmd --mermanent --add-port = 6783/tcp. # firewall-cmd --permanent --add-port = 10250/tcp. # firewall-cmd --permanent --add-port = 10255/tcp. # firewall-cmd --permanent --add-port = 30000-32767/tcp. # firewall-cmd-επαναφόρτωση. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
Προσθέστε πρώτα το χώρο αποθήκευσης Docker χρησιμοποιώντας το DNF config-manager.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
Στη συνέχεια, προσθέστε το containerd.io πακέτο.
# dnf εγκατάσταση https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Με αυτά τα δύο πακέτα εγκατεστημένα, εγκαταστήστε την τελευταία έκδοση του docker-ce.
# dnf εγκατάσταση docker-ce.
Ενεργοποιήστε και ξεκινήστε την υπηρεσία docker.
# systemctl ενεργοποίηση docker. # systemctl start docker.
Θα χρειαστεί να προσθέσετε Κουμπερνέτες αποθετήρια με μη αυτόματο τρόπο καθώς δεν είναι προεγκατεστημένα CentOS 8.
# γάτα </etc/yum.repos.d/kubernetes.repo. [kubernetes] όνομα = Κουμπερνέτες. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. ενεργοποιημένο = 1. gpgcheck = 1. repo_gpgcheck = 1. gpgkey = https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. ΕΟΦ.
Με το repo πακέτου τώρα έτοιμο, μπορείτε να προχωρήσετε και να εγκαταστήσετε kubeadm.
# dnf εγκατάσταση kubeadm -y
Ξεκινήστε και ενεργοποιήστε την υπηρεσία.
# systemctl ενεργοποίηση kubelet. # systemctl εκκίνηση kubelet.
Απαιτούμε τώρα το σύμβολο αυτό kubeadm init δημιουργήθηκε, για να ενταχθεί στο σύμπλεγμα. Μπορείτε να το αντιγράψετε και να το επικολλήσετε στο δικό σας κόμβος-1 και κόμβος-2 αν το είχατε αντιγράψει κάπου.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc82314
Όπως προτείνεται στην τελευταία γραμμή, επιστρέψτε στη δική σας κύριος κόμβος και επαληθεύστε εάν εργάζεται κόμβος-1 και κόμβος εργαζομένου-2 έχουν ενταχθεί στο σύμπλεγμα χρησιμοποιώντας την ακόλουθη εντολή.
# kubectl λάβετε κόμβους.
Εάν όλα τα βήματα εκτελούνται με επιτυχία, τότε, θα πρέπει να το δείτε κόμβος-1 και κόμβος-2 σε κατάσταση ετοιμότητας στο κύριος κόμβος. Σε αυτό το σημείο, έχετε αναπτύξει με επιτυχία τώρα ένα σύμπλεγμα Kubernetes CentOS 8.
Συνιστάται Ανάγνωση: Πώς να αναπτύξετε το Nginx σε ένα σύμπλεγμα Kubernetes
Το σύμπλεγμα που δημιουργήσαμε εδώ έχει ένα ενιαίο Κύριος κόμβος, και ως εκ τούτου, εάν το Κύριος κόμβος αποτύχει, το σύμπλεγμα μπορεί να χάσει δεδομένα και μπορεί να χρειαστεί να δημιουργηθεί εκ νέου.
Για το λόγο αυτό, προτείνω μια ρύθμιση υψηλής διαθεσιμότητας.