Προγραμματισμός

Πώς να τρέξετε μαζί την Κασσάνδρα και το Kubernetes

Τα κοντέινερ έχουν γίνει όλο και πιο δημοφιλή για προγραμματιστές που θέλουν να αναπτύξουν εφαρμογές στο cloud. Για τη διαχείριση αυτών των νέων εφαρμογών, το Kubernetes έχει γίνει ένα de facto πρότυπο για ενορχήστρωση εμπορευματοκιβωτίων. Το Kubernetes επιτρέπει στους προγραμματιστές να δημιουργούν κατανεμημένες εφαρμογές που κλιμακώνονται αυτόματα ελαστικά, ανάλογα με τη ζήτηση.

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

Σε κατανεμημένες βάσεις δεδομένων, η Cassandra είναι ελκυστική για προγραμματιστές που γνωρίζουν ότι θα πρέπει να κλιμακώσουν τα δεδομένα τους - παρέχει μια πλήρως ανεκτική βάση δεδομένων και προσέγγιση διαχείρισης δεδομένων που μπορεί να τρέχει με τον ίδιο τρόπο σε πολλές τοποθεσίες και υπηρεσίες cloud. Καθώς όλοι οι κόμβοι στην Κασσάνδρα είναι ίσοι και κάθε κόμβος μπορεί να χειριστεί αιτήματα ανάγνωσης και εγγραφής, δεν υπάρχει κανένα σημείο αποτυχίας στο μοντέλο Cassandra. Τα δεδομένα αναπαράγονται αυτόματα μεταξύ των ζωνών αποτυχίας για να αποφευχθεί η απώλεια μίας παρουσίας που επηρεάζει την εφαρμογή.

Σύνδεση της Κασσάνδρας με το Kubernetes

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

Για να επιτευχθεί αυτό, ωστόσο, σημαίνει κατανόηση ποιο σύστημα είναι υπεύθυνο. Η Cassandra έχει ήδη το είδος ανοχής σφαλμάτων και τοποθέτησης κόμβων που μπορεί να προσφέρει ο Kubernetes, οπότε είναι σημαντικό να γνωρίζουμε ποιο σύστημα είναι υπεύθυνο για τη λήψη των αποφάσεων. Αυτό επιτυγχάνεται με τη χρήση ενός χειριστή Kubernetes.

Οι χειριστές αυτοματοποιούν τη διαδικασία ανάπτυξης και διαχείρισης πιο πολύπλοκων εφαρμογών που απαιτούν πληροφορίες για συγκεκριμένο τομέα και πρέπει να αλληλεπιδρούν με εξωτερικά συστήματα. Μέχρι να αναπτυχθούν οι χειριστές, τα συστατικά στοιχεία της εφαρμογής όπως οι παρουσίες βάσης δεδομένων οδήγησαν σε επιπλέον ευθύνες για ομάδες devops, καθώς έπρεπε να αναλάβουν χειροκίνητη εργασία για να προετοιμάσουν τις παρουσίες τους και να λειτουργήσουν με τρόπο ευγενικό.

Υπάρχουν πολλοί χειριστές για την Κασσάνδρα που έχουν αναπτυχθεί από την κοινότητα της Κασσάνδρας. Για αυτό το παράδειγμα, θα χρησιμοποιούμε το cass-operator, το οποίο δημιουργήθηκε από κοινού από την DataStax. Υποστηρίζει ανοιχτές πηγές Kubernetes, Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) και Pivotal Container Service (PKS), ώστε να μπορείτε να χρησιμοποιήσετε την υπηρεσία Kubernetes που ταιριάζει καλύτερα στο περιβάλλον σας.

Η εγκατάσταση ενός χειριστή cass στο δικό σας σύμπλεγμα Kubernetes είναι μια απλή διαδικασία αν έχετε βασικές γνώσεις για τη λειτουργία ενός συμπλέγματος Kubernetes. Μόλις γίνει έλεγχος ταυτότητας του συμπλέγματος Kubernetes, χρησιμοποιώντας το kubectl, το εργαλείο γραμμής εντολών συμπλέγματος Kubernetes και την παρουσία cloud του Kubernetes (εάν το Kubernetes ανοιχτού κώδικα, το GKE, το EKS ή το PKS) είναι συνδεδεμένο στο τοπικό μηχάνημά σας, μπορείτε να αρχίσετε να εφαρμόζετε το διαμόρφωση χειριστή αρχεία YAML στο σύμπλεγμα σας.

Ρύθμιση των ορισμών του χειριστή cass

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

Μια γρήγορη σημείωση σχετικά με τον ορισμό του κέντρου δεδομένων. Αυτό βασίζεται στους ορισμούς που χρησιμοποιούνται στην Κασσάνδρα και όχι σε μια αναφορά σε ένα κέντρο φυσικών δεδομένων.

Η ιεραρχία γι 'αυτό έχει ως εξής:

  • Ένας κόμβος αναφέρεται σε ένα σύστημα υπολογιστή που εκτελεί μια παρουσία της Κασσάνδρας. Ένας κόμβος μπορεί να είναι ένας φυσικός κεντρικός υπολογιστής, μια παρουσία μηχανής στο σύννεφο ή ακόμη και ένα κοντέινερ Docker.
  • Ένα ράφι αναφέρεται σε ένα σύνολο κόμβων της Κασσάνδρας το ένα κοντά στο άλλο. Ένα ράφι μπορεί να είναι ένα φυσικό ράφι που περιέχει κόμβους συνδεδεμένους σε έναν κοινό διακόπτη δικτύου. Ωστόσο, σε εφαρμογές cloud, ένα ράφι συχνά αναφέρεται σε μια συλλογή από παρουσίες μηχανών που εκτελούνται στην ίδια ζώνη διαθεσιμότητας.
  • Ένα κέντρο δεδομένων αναφέρεται σε μια συλλογή από λογικά ράφια, που γενικά κατοικούν στο ίδιο κτίριο και συνδέονται με ένα αξιόπιστο δίκτυο. Στις εφαρμογές cloud, τα κέντρα δεδομένων αντιστοιχούν γενικά σε μια περιοχή cloud.
  • Ένα σύμπλεγμα αναφέρεται σε μια συλλογή κέντρων δεδομένων που υποστηρίζουν την ίδια εφαρμογή. Τα συμπλέγματα Cassandra μπορούν να εκτελεστούν σε ένα περιβάλλον cloud ή σε κέντρο φυσικών δεδομένων ή να διανεμηθούν σε πολλές τοποθεσίες για μεγαλύτερη ανθεκτικότητα και μειωμένη καθυστέρηση

Τώρα επιβεβαιώσαμε τις συμβάσεις ονομασίας μας, ήρθε η ώρα να ορίσουμε ορισμούς. Το παράδειγμά μας χρησιμοποιεί το GKE, αλλά η διαδικασία είναι παρόμοια για άλλους κινητήρες Kubernetes. Υπάρχουν τρία βήματα.

Βήμα 1

Πρώτον, πρέπει να εκτελέσουμε μια εντολή kubectl που αναφέρεται σε ένα αρχείο διαμόρφωσης YAML. Αυτό εφαρμόζει τους ορισμούς της δήλωσης cass-operator στο συνδεδεμένο σύμπλεγμα Kubernetes. Οι εκδηλώσεις είναι περιγραφές αντικειμένων API, οι οποίες περιγράφουν την επιθυμητή κατάσταση του αντικειμένου, σε αυτήν την περίπτωση, τον χειριστή Cassandra. Για ένα πλήρες σύνολο εκδηλώσεων για συγκεκριμένη έκδοση, δείτε αυτήν τη σελίδα GitHub.

Ακολουθεί ένα παράδειγμα εντολής kubectl για το σύννεφο GKE που εκτελεί το Kubernetes 1.16:

kubectl create -f //raw.githubusercontent.com/datastax/cass-operator/v1.3.0/docs/user/cass-operator-manifests-v1.16.yaml

Βήμα 2

Η επόμενη εντολή kubectl εφαρμόζει μια διαμόρφωση YAML που καθορίζει τις ρυθμίσεις αποθήκευσης που θα χρησιμοποιηθούν για κόμβους Cassandra σε ένα σύμπλεγμα. Το Kubernetes χρησιμοποιεί τον πόρο StorageClass ως επίπεδο αφαίρεσης μεταξύ λοβών που χρειάζονται μόνιμη αποθήκευση και των φυσικών πόρων αποθήκευσης που μπορεί να παρέχει ένα συγκεκριμένο σύμπλεγμα Kubernetes. Το παράδειγμα χρησιμοποιεί SSD ως τύπο αποθήκευσης. Για περισσότερες επιλογές, δείτε αυτήν τη σελίδα GitHub. Ακολουθεί ο άμεσος σύνδεσμος για το YAML που εφαρμόζεται στη διαμόρφωση αποθήκευσης, παρακάτω:

apiVersion: storage.k8s.io/v1

είδος: StorageClass

μεταδεδομένα:

όνομα: αποθήκευση διακομιστή

παροχέας: kubernetes.io/gce-pd

Παράμετροι:

τύπος: pd-ssd

τύπος αναπαραγωγής: κανένας

volumeBindingMode: WaitForFirstConsumer

reclaimPolicy: Διαγραφή

Βήμα 3

Τέλος, χρησιμοποιώντας το kubectl ξανά, εφαρμόζουμε το YAML που ορίζει το κέντρο δεδομένων Cassandra.

# Μεγέθη για εργασία σε κόμβους εργαζομένων 3 k8s με 1 πυρήνα / 4 GB RAM

# Δείτε το γειτονικό παράδειγμα-cassdc-full.yaml για έγγραφα για κάθε παράμετρο

apiVersion: cassandra.datastax.com/v1beta1

είδος: CassandraDatacenter

μεταδεδομένα:

όνομα: dc1

προδιαγραφή:

clusterName: cluster1

Τύπος διακομιστή: Κασσάνδρα

serverVersion: "3.11.6"

διαχείρισηApiAuth:

ανασφαλής: {}

μέγεθος: 3

storageConfig:

cassandraDataVolumeClaimSpec:

storageClassName: αποθήκευση διακομιστή

accessModes:

- ΔιαβάστεWriteOnce

πόροι:

αιτήσεων:

αποθήκευση: 5Gi

διαμόρφωση:

Κασσάνδρα-Γιαμλ:

επικυρωτής: org.apache.cassandra.auth.PasswordAuthenticator

authorizer: org.apache.cassandra.auth.CassandraAuthorizer

role_manager: org.apache.cassandra.auth.CassandraRoleManager

jvm-επιλογές:

initial_heap_size: "800M"

max_heap_size: "800M"

Αυτό το παράδειγμα YAML είναι για μια εικόνα ανοιχτού κώδικα Apache Cassandra 3.11.6, με τρεις κόμβους σε ένα ράφι, στο σύμπλεγμα Kubernetes. Αυτός είναι ο άμεσος σύνδεσμος. Υπάρχει ένα πλήρες σύνολο διαμορφώσεων κέντρου δεδομένων για συγκεκριμένη βάση δεδομένων σε αυτήν τη σελίδα GitHub.

Σε αυτό το σημείο, θα μπορείτε να δείτε τους πόρους που έχετε δημιουργήσει. Αυτά θα είναι ορατά στην κονσόλα cloud. Στο Google Cloud Console, για παράδειγμα, μπορείτε να κάνετε κλικ στην καρτέλα Clusters για να δείτε τι εκτελείται και να δείτε τους φόρτους εργασίας. Αυτές είναι αναπτυσσόμενες υπολογιστικές μονάδες που μπορούν να δημιουργηθούν και να διαχειριστούν στο σύμπλεγμα Kubernetes.

Για να συνδεθείτε σε μια ίδια βάση δεδομένων της Cassandra, μπορείτε να χρησιμοποιήσετε το cqlsh, το κέλυφος της γραμμής εντολών και να ζητήσετε το Cassandra χρησιμοποιώντας CQL μέσα από το σύμπλεγμα Kubernetes. Μόλις γίνει έλεγχος ταυτότητας, θα μπορείτε να υποβάλετε εντολές DDL για να δημιουργήσετε ή να αλλάξετε πίνακες κ.λπ. και να χειριστείτε δεδομένα με οδηγίες DML, όπως εισαγωγή και ενημέρωση σε CQL.

Τι ακολουθεί για την Κασσάνδρα και τον Κουμπέρνετ;

Ενώ υπάρχουν αρκετοί χειριστές διαθέσιμοι για το Apache Cassandra, υπήρξε ανάγκη για έναν κοινό χειριστή. Εταιρείες που συμμετέχουν στην κοινότητα της Κασσάνδρας, όπως Sky, Orange, DataStax και Instaclustr συνεργάζονται για να δημιουργήσουν έναν κοινό φορέα εκμετάλλευσης για την Apache Cassandra στο Kubernetes. Αυτή η προσπάθεια συνεργασίας συμβαδίζει με τους υπάρχοντες φορείς ανοιχτού κώδικα και ο στόχος είναι να παρέχεται στις επιχειρήσεις και στους χρήστες μια συνεπή στοίβα κλίμακας για υπολογισμό και δεδομένα.

Με την πάροδο του χρόνου, η μετάβαση σε εφαρμογές εγγενών cloud θα πρέπει να υποστηρίζεται και με δεδομένα εγγενών cloud. Αυτό θα βασιστεί σε περισσότερο αυτοματισμό, που θα βασίζεται σε εργαλεία όπως το Kubernetes. Χρησιμοποιώντας το Kubernetes και την Κασσάνδρα μαζί, μπορείτε να κάνετε την προσέγγισή σας στα δεδομένα που προέρχονται από το cloud.

Για να μάθετε περισσότερα για την Κασσάνδρα και το Kubernetes, επισκεφθείτε τη διεύθυνση //www.datastax.com/dev/kubernetes. Για περισσότερες πληροφορίες σχετικά με την εκτέλεση της Cassandra στο cloud, ανατρέξτε στο DataStax Astra.

Ο Patrick McFadin είναι ο VP των σχέσεων προγραμματιστών στο DataStax, όπου οδηγεί μια ομάδα αφιερωμένη στην επιτυχία των χρηστών του Apache Cassandra. Έχει επίσης εργαστεί ως επικεφαλής ευαγγελιστής για την Apache Cassandra και σύμβουλος της DataStax, όπου βοήθησε στην κατασκευή μερικών από τις μεγαλύτερες και συναρπαστικές εφαρμογές στην παραγωγή. Προηγουμένως στο DataStax, ήταν αρχιτέκτονας του Hobsons και Oracle DBA / προγραμματιστής για πάνω από 15 χρόνια.

Το New Tech Forum παρέχει έναν χώρο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο [email protected].

$config[zx-auto] not found$config[zx-overlay] not found