ΕΡΓΑΣΙΕΣ

ΕΡΓΑΣΙΕΣ

Κυβερνήτες (Kubernetes)

Οι Kubernetes (συνήθως αναφέρονται και ως “K8s” για συντομία) είναι ένα ανοιχτού κώδικα σύστημα διαχείρισης ελεγχόμενων δομών που χρησιμοποιούνται για την αυτοματοποίηση, την αντιμετώπιση σφαλμάτων και τη διακλιμάκωση εφαρμογών σε περιβάλλοντα που βασίζονται σε εκτελεστές.

 

Τα Kubernetes αναπτύχθηκαν αρχικά από τη Google και στη συνέχεια διατέθηκαν ως ανοιχτό κώδικα έργο στο πλαίσιο του Cloud Native Computing Foundation (CNCF). Είναι ένα από τα πιο δημοφιλή εργαλεία για τον αυτοματισμό και τη διαχείριση περιεχομένων σε μεγάλες υποδομές συνέχειας παράδοσης (CI/CD) και σε περιβάλλοντα υπολογιστικού νέφους.

 

Οι βασικές λειτουργίες των Kubernetes περιλαμβάνουν:

  • Διαχείριση Κατανεμημένων Εφαρμογών: Οι Kubernetes επιτρέπουν τη διαχείριση και την ανακατανομή εφαρμογών σε διαφορετικά υπολογιστικά κόμβους, εξασφαλίζοντας ότι οι εφαρμογές εκτελούνται με αξιοπιστία και αποδοτικότητα.
  • Αυτόματη Διακλιμάκωση: Οι Kubernetes επιτρέπουν την αυτόματη ανίχνευση και αντιμετώπιση προβλημάτων στις εφαρμογές, όπως η επανεκκίνηση αυτόματα περιττών κατανεμημένων αντιγράφων.
  • Διαχείριση Υπολογιστικών Πόρων: Οι Kubernetes επιτρέπουν τη διαχείριση των υπολογιστικών, αποθηκευτικών και δικτυακών πόρων που χρησιμοποιούνται από τις εφαρμογές.
  • Κατανομή Φορτίου: Οι Kubernetes παρέχουν μηχανισμούς για την κατανομή του φορτίου της εφαρμογής σε διάφορα αντίγραφα, επιτρέποντας την επεκτασιμότητα και την αντοχή σε σφάλματα.
  • Ευελιξία και Επεκτασιμότητα: Οι Kubernetes είναι εξαιρετικά ευέλικτοι και επεκτάσιμοι, επιτρέποντας την προσαρμογή σε διάφορες υποδομές και απαιτήσεις.

Χρησιμοποιώντας την εντολή kubectl για υποβολή εργασιών (submitting jobs)

Για να υποβάλετε batch jobs χρησιμοποιώντας το kubectl στο Kubernetes, μπορείτε να χρησιμοποιήσετε τον πόρο “Job”. Ένα Job είναι μια εργασία που εκτελείται μια φορά και ολοκληρώνεται, ενώ έχει δυνατότητα διαχείρισης της εκτέλεσης αυτής της εργασίας. Εδώ είναι ένα βήμα-προς-βήμα παράδειγμα για το πώς να δημιουργήσετε και να υποβάλετε ένα Job χρησιμοποιώντας το kubectl:


Ενεργοποίηση των κυβερνητών για χρήση από κονσόλα:

Για να μπορέσουμε να τρέξουμε από την κονσόλα τον κώδικα του παραδείγματος θα πρέπει πρώτα να ενεργοποιήσουμε τους κυβερνήτες με την ακόλουθη εντολή

module load kubernetes


Δημιουργία ενός αρχείου YAML για το Job

Πρώτα, δημιουργήστε ένα αρχείο YAML που θα περιγράφει το Job που θέλετε να δημιουργήσετε. Εδώ είναι ένα απλό παράδειγμα:

Στο αρχείο αυτό, αντικαταστήστε το “your-image-name:tag” με την εικόνα Docker που θέλετε να χρησιμοποιήσετε για το Job σας. Μπορείτε επίσης να προσαρμόσετε άλλες παραμέτρους όπως το όνομα του Job και το όριο επαναλήψεων (backoffLimit) ανάλογα με τις ανάγκες σας.


Εφαρμογή του Job στο Cluster:

Αφού δημιουργήσετε το αρχείο YAML, μπορείτε να εφαρμόσετε το Job στο Kubernetes Cluster χρησιμοποιώντας την εντολή

kubectl apply -f your-job.yaml


Παρακολούθηση της εκτέλεσης του Job:

Για να παρακολουθήσετε την εκτέλεση του Job και να δείτε την κατάσταση του, μπορείτε να χρησιμοποιήσετε την εντολή

kubectl get jobs

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή

kubectl describe job your-job-name

για περισσότερες πληροφορίες.


Διαγραφή του Job (προαιρετικό):

Αν θέλετε να διαγράψετε το Job μετά την ολοκλήρωση του, μπορείτε να χρησιμοποιήσετε την εντολή

kubectl delete job your-job-name.

Παράδειγμα υποβολής εργασιών

Παρακάτω ακολουθεί ένα απλό παράδειγμα υπολογισμού του π με τη δημιουργία του αντίστοιχου pi-job.yml:

Αρχείο pi-job.yml

 

Το παραπάνω script υπολογίζει με εντολή Perl τον αριθμό π με 4000 δεκαδικά ψηφία. Η εκτέλεση της εντολής γίνεται με την ακόλουθη εντολή στο  command line:

kubectl apply -f pi-job.yml

 

Το τελικό αποτέλεσμα του π μπορεί να βρεθεί με την παρακάτω εντολή

kubectl logs -f pi

 

Όπου θα μπορέσουμε να δούμε τον αρθιμό π με 4000 δεκαδικά  ψηφία 3.141592653589793238462643383279502884197169399375105820974…

 

Για περισσότερες λεπτομερείς μπορείτε να ανατρέξετε στο εγχειρίδιο χρήσης του συστήματος Bright Cluster Manager v9.2. στον παρακάτω σύνδεσμο: https://support.brightcomputing.com/manuals/9.2/user-manual.pdf