Πρακτική · Ενότητα 07 — Kubernetes : concepts de base · Επίπεδο αρχάριο → ενδιάμεσο
Δοκιμάστε πρώτα μόνοι! Πραγματοποιήστε το έργο με αυτή μόνο την εκφώνηση. Η διόρθωση (σχολιασμένα μανιφέστα YAML + εντολές
kubectl) βρίσκεται στο README.md, διπλωμένη. Μην την ανοίξετε παρά αφού έχετε προσπαθήσει.
Δεν έχετε τίποτε επιπλέον να εγκαταστήσετε: το Docker Desktop περιέχει ένα ενσωματωμένο σύμπλεγμα Kubernetes.
kubectl get nodesdocker-desktop σε κατάσταση Ready.(Δυνατές εναλλακτικές:
minikube startήkind create cluster. Το έργο λειτουργεί επίσης, με την προϋπόθεση φόρτωσης της εικόνας — βλ. 02-COMMANDES.md.)
Να αναπτύξετε μια μικρή εφαρμογή ιστού στο Kubernetes σε πολλά αντίγραφα (Pods), να την εκθέσετε μέσω ενός Service και έπειτα να εξασκηθείτε στις καθημερινές κινήσεις: scaling, rolling update, rollback και αυτο-επιδιόρθωση.
Όταν ανανεώνετε τη σελίδα, το όνομα του Pod που απαντά αλλάζει: απόδειξη ότι το Service κατανέμει το φορτίο μεταξύ των Pods.
/, εμφανίζει το hostname της = το όνομα του Pod).demo-k8s:1.0.Deployment με 3 αντίγραφα, συνεκτικές ετικέτες (app: demo-web) και έναν ανιχνευτή (readinessProbe / livenessProbe) στο /health.kubectl get pods, kubectl describe pod ..., kubectl logs ...).Service τύπου NodePort (θύρα 30080) που δείχνει προς τα Pods μέσω του επιλογέα ετικετών.http://localhost:30080 και ανανεώστε: επαληθεύστε ότι το όνομα του Pod αλλάζει.ConfigMap που περιέχει APP_TITLE, APP_VERSION και BG_COLOR, και εγχύστε το στα Pods (envFrom).BG_COLOR, εφαρμόστε ξανά το ConfigMap, επανεκκινήστε τα Pods (kubectl rollout restart) και παρατηρήστε το νέο χρώμα.kubectl scale) και έπειτα επιστρέψτε στα 3.APP_VERSION, εφαρμόστε και ακολουθήστε τη σταδιακή ανάπτυξη (kubectl rollout status).kubectl rollout undo).kubectl delete pod ...) και διαπιστώστε ότι το Kubernetes δημιουργεί ξανά ένα μόνο του.app/ (κώδικας + Dockerfile) και ο φάκελος k8s/ (configmap.yaml, deployment.yaml, service.yaml).curl).kubectl get pods που δείχνει 3/3 Pods Running.kubectl rollout status κατά τη διάρκεια ενός rolling update.| Κριτήριο | Αναμενόμενο |
|---|---|
| Εικόνα κατασκευασμένη | demo-k8s:1.0 διαθέσιμη για το σύμπλεγμα |
| Deployment | 3 Pods Running, ανιχνευτές OK |
| Service | Σελίδα προσβάσιμη στο localhost:30080, το όνομα του Pod αλλάζει |
| ConfigMap | Αλλαγή του BG_COLOR ορατή μετά την επανεφαρμογή |
| Κύκλος ζωής | Scaling, rolling update, rollback και αυτο-επιδιόρθωση επιδειγμένα |
Κολλήσατε; Το README.md περιέχει την πλήρη διόρθωση (σχολιασμένα μανιφέστα + εντολές) και το υπόμνημα εντολών λιστάρει όλο το χρήσιμο
kubectl— να τα συμβουλευτείτε αφού έχετε προσπαθήσει.