KlusterKit

KlusterKit: Μια εργαλειοθήκη ανοιχτού κώδικα για την απλοποίηση των αναπτύξεων του Kubernetes και την εκτέλεση σε φυσικά απομονωμένα περιβάλλοντα εσωτερικής εγκατάστασης

KlusterKit

Σήμερα είμαστε στην ευχάριστη θέση να ανακοινώσουμε ότι το Platform9 είναι ανοιχτής προέλευσης το Klusterkit, μια σουίτα τριών εργαλείων, υπό την άδεια Apache v2.0 στο GitHub.

Οι πελάτες μας διαθέτουν λογισμικό σε ιδιωτικά κέντρα δεδομένων που συχνά δεν είναι συνδεδεμένα στο Διαδίκτυο (για λόγους ασφαλείας ή άλλους λόγους). Αυτές οι μεγάλες εταιρείες θέλουν να επωφεληθούν από το Kubernetes και να εκσυγχρονίσουν τις εφαρμογές τους και ταυτόχρονα να τις αναπτύξουν σε διαφορετικά κέντρα δεδομένων, τα οποία συχνά δεν είναι συνδεδεμένα με τον έξω κόσμο. Εδώ έρχεται το Klusterkit, καθιστώντας εύκολη την παροχή και τη διαχείριση συμπλεγμάτων K8 σε φυσικά απομονωμένα περιβάλλοντα.

Το Klusterkit περιλαμβάνει τρία ανεξάρτητα εργαλεία που μπορούν να χρησιμοποιηθούν μαζί ή χωριστά για τη διαχείριση του κύκλου ζωής ενός συμπλέγματος παραγωγής Kubernetes:

  1. etcdadm, CLI για απλοποιημένη διαχείριση συμπλέγματος etcd.
  2. nodeadm, ένα CLI για διαχείριση κόμβου που επεκτείνει το kubeadm και αναπτύσσει τις εξαρτήσεις που απαιτούνται από το kubeadm.
  3. cctl, ένα εργαλείο διαχείρισης κύκλου ζωής συμπλέγματος που υιοθετεί το Cluster API από την κοινότητα Kubernetes και χρησιμοποιεί nodeadm και etcdadm για την απρόσκοπτη παράδοση και διατήρηση εξαιρετικά διαθέσιμων συμπλεγμάτων Kubernetes σε εσωτερικές εγκαταστάσεις και ακόμη και σε φυσικά απομονωμένα περιβάλλοντα.

Μαζί, αυτά τα τρία εργαλεία εκτελούν τις ακόλουθες εργασίες:

  • Παρέχετε και διαχειριστείτε εύκολα ένα εξαιρετικά διαθέσιμο σύμπλεγμα etcd και πίνακα ελέγχου Kubernetes σε φυσικά απομονωμένα περιβάλλοντα εσωτερικής εγκατάστασης μέσω του Cluster API.
  • Επαναφορά του πίνακα ελέγχου του συμπλέγματος μετά από αποτυχία χρησιμοποιώντας αντίγραφο ασφαλείας etcd.
  • Συσκευασία όλων των τεχνουργημάτων που απαιτούνται για την παράδοση του Kubernetes σε φυσικά απομονωμένα περιβάλλοντα.

Χαρακτηριστικά Klusterkit

  • Υποστήριξη Multi-master (HA cluster K8s).
  • Παράδοση και διαχείριση ασφαλών συμπλεγμάτων etcd.
  • Εργασία σε φυσικά απομονωμένα περιβάλλοντα.
  • Υποστηρίζει κυλιόμενες αναβαθμίσεις και επαναλήψεις.
  • Flannel (vxlan) ως CNI για το backend. Υπάρχουν σχέδια για υποστήριξη άλλων CNI.
  • Δημιουργία αντιγράφων ασφαλείας και επαναφορά συστάδων etcd μετά από απώλεια απαρτίας.
  • Προστατεύει τον πίνακα ελέγχου από την εξάντληση της μνήμης και του χρόνου CPU.

Klusterkit Solution Architecture

KlusterKit

Για ανοχή σφαλμάτων και απλότητα, το Klusterkit χρησιμοποιεί ένα μόνο αρχείο cctl-state.yaml για την αποθήκευση μεταδεδομένων συμπλέγματος Kubernetes. Μέσω του cctl CLI μπορείτε να διαχειριστείτε τον κύκλο ζωής ενός συμπλέγματος Kubernetes σε οποιοδήποτε μηχάνημα έχει αυτό το αρχείο κατάστασης. Αυτό μπορεί να είναι ο φορητός υπολογιστής ενός χειριστή ή οποιοσδήποτε άλλος υπολογιστής που αποτελεί μέρος του συμπλέγματος Kubernetes.

Το Cctl υλοποιεί και καλεί τη διεπαφή cluster-api από το upstream ως βιβλιοθήκη για λειτουργίες CRUD σε συμπλέγματα. Χρησιμοποιεί ssh-πάροχος, ένας πάροχος γυμνού μεταλλικού cluster-api ανοιχτού κώδικα από την Platform9, ο οποίος με τη σειρά του καλεί τα etcdadm και nodeadm για να εκτελέσουν λειτουργίες στο σύμπλεγμα.

Πώς να χρησιμοποιήσετε το Klusterkit και τα συστατικά του:

1 – Οποιοδήποτε από τα τρία εργαλεία μπορεί να συλλεχθεί εύκολα με την εντολή go get:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Αυτά τα εκτελέσιμα μπορούν στη συνέχεια να συσκευαστούν και να αντιγραφούν στις μηχανές-στόχους όπου θα πρέπει να εκτελείται το εξαιρετικά διαθέσιμο σύμπλεγμα Kubernetes. Τοποθετήστε τα αρχεία nodeadm και etcdadm στους καταλόγους εκδόσεων:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – Εάν χρειάζεται να ενορχηστρώσετε ένα σύμπλεγμα Kubernetes τοπικά, σε ένα φυσικά απομονωμένο περιβάλλον, οι απαραίτητες εξαρτήσεις μπορούν να ληφθούν εύκολα εκ των προτέρων σε έναν υπολογιστή με πρόσβαση στο Διαδίκτυο χρησιμοποιώντας την εντολή λήψης nodeadm και etcdadm. Στη συνέχεια, τα ληφθέντα στοιχεία (π.χ. αρχείο μονάδας kubelet και kubelet για systemd, εκτελέσιμα αρχεία CNI, αρχείο kubeadm, όλες οι εικόνες κοντέινερ συμπεριλαμβανομένων των Kubernetes, το αρχείο keepalived εικόνας και συστήματος, η εικόνα κοντέινερ etcd και τα αντίστοιχα αρχεία διαμόρφωσης) μπορούν εύκολα να αντιγραφούν σε φυσικά απομονωμένους κεντρικούς υπολογιστές κατά μήκος με cctl, nodeadm και etcdadm. (Δείτε λεπτομέρειες στο wiki).

4 – Μόλις όλα είναι στη θέση τους, μπορείτε να δημιουργήσετε το πρώτο σύμπλεγμα Kubernetes με μερικές εντολές:

– Πρώτα δημιουργήστε διαπιστευτήρια για το σύμπλεγμα.

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

– Στη συνέχεια, δημιουργήστε ένα αντικείμενο συμπλέγματος. -Η βοήθεια εμφανίζει μια λίστα με τις υποστηριζόμενες επιλογές.

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– Τέλος, δημιουργήστε το πρώτο μηχάνημα στο σύμπλεγμα.

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

Διαβάστε περισσότερα έγγραφα στο GitHub.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο