Επιλογή του τοπικού cluster: kind vs Kubeadm (Docker Desktop)

3 λεπτά

Έργο projet10-kubernetes-deploiements · Όταν το Docker Desktop εμφανίζει « Create Kubernetes Cluster », προτείνει δύο τύπους συμπλέγματος: kind ή Kubeadm. Αυτό το έγγραφο εξηγεί τη διαφορά και ποιο να διαλέξετε για αυτό το μάθημα.

Σε μία πρόταση

  • Kubeadm = σύμπλεγμα 1 κόμβου, απλό, που μοιράζεται τον κινητήρα Docker → οι εικόνες που κατασκευάζετε τοπικά είναι άμεσα χρησιμοποιήσιμες. ⭐ Συνιστάται για αυτό το έργο.
  • kind (Kubernetes IN Docker) = κάθε κόμβος είναι ένα κοντέινερ με τη δική του αποθήκευση εικόνων (containerd) → πρέπει να φορτώσετε τις τοπικές εικόνες πριν την ανάπτυξη, αλλά μπορείτε να προσομοιώσετε πολλούς κόμβους.

Συγκριτικός πίνακας

ΚριτήριοKubeadmkind
ΣημασίαΕπίσημο εργαλείο εκκίνησης συμπλέγματοςKubernetes in Docker
Αριθμός κόμβων1 μόνο (single-node)1 έως 10 (πολυκόμβο δυνατό)
Πού τρέχουν οι κόμβοιΑπευθείας στο VM του Docker DesktopΚάθε κόμβος = ένα κοντέινερ Docker
Αποθήκευση εικόνωνΚοινή με τον κινητήρα DockerΑπομονωμένη (containerd δικό του του kind)
Τοπική εικόνα (docker build)Ορατή αμέσως (imagePullPolicy: IfNotPresent)Μη ορατήkind load docker-image <img> υποχρεωτικό
Προσομοίωση βλάβης κόμβουΌχι (ένας μόνο κόμβος)Ναι (μπορούμε να σταματήσουμε ένα κοντέινερ-κόμβο)
Ταχύτητα / ελαφρότηταΠολύ γρήγορο στην εκκίνησηΓρήγορο, αλλά ένα επιπλέον βήμα φόρτωσης εικόνας
Ιδανικό γιαΜάθηση Pods / Deployments / Services χωρίς τριβήΔοκιμή πολυκόμβου, scheduling, affinity
ΕπαναφοράReset του συμπλέγματοςΗ αλλαγή του αριθμού κόμβων επαναφέρει τα πάντα

Συγκεκριμένος αντίκτυπος σε ΑΥΤΟ το έργο

Το έργο μας κατασκευάζει μια εικόνα τοπικά:

powershell
docker build -t demo-k8s:1.0 ./app

και το deployment.yaml χρησιμοποιεί:

yaml
image: demo-k8s:1.0
imagePullPolicy: IfNotPresent   # ΔΕΝ προσπαθεί να κατεβάσει από μητρώο

Με Kubeadm — τίποτε περισσότερο να κάνετε

Το σύμπλεγμα μοιράζεται τον κινητήρα Docker: η εικόνα demo-k8s:1.0 είναι ήδη εκεί.

powershell
docker build -t demo-k8s:1.0 ./app
kubectl apply -f k8s/

Με kind — ένα επιπλέον βήμα (φόρτωση της εικόνας)

Αλλιώς τα Pods μένουν σε ErrImagePull / ImagePullBackOff (το σύμπλεγμα δεν βρίσκει την εικόνα).

powershell
docker build -t demo-k8s:1.0 ./app
kind load docker-image demo-k8s:1.0    # <-- απαραίτητο με kind
kubectl apply -f k8s/

Να το ξανακάνετε σε ΚΑΘΕ ανακατασκευή εικόνας με kind. Είναι η παράλειψη αρ. 1 που μπλοκάρει τους αρχάριους.


Σύσταση για το μάθημα

Ο στόχος σαςΔιαλέξτε
Ανακάλυψη Pods, Deployments, Services, ConfigMap, scaling, rolling updateKubeadm
Επίδειξη πολυκόμβου συμπλέγματος και κατανομής των Pods μεταξύ κόμβωνkind (2 κόμβοι ή περισσότεροι)

Για αυτό το έργο, τσεκάρετε το Kubeadm και έπειτα Create.

Ρυθμίσεις του παραθύρου « Create Kubernetes Cluster »

  • Cluster Type: Kubeadm.
  • Version: αυτή που προτείνεται (π.χ. v1.34.1) είναι κατάλληλη.
  • Advanced Settings → Show system containers: αφήστε το χωρίς τικ (αλλιώς τα εσωτερικά κοντέινερ του Kubernetes θα εμφανίζονται στο docker ps, πράγμα που γεμίζει την προβολή).

Επαλήθευση ότι το σύμπλεγμα είναι έτοιμο

powershell
kubectl config use-context docker-desktop
kubectl get nodes            # πρέπει να εμφανίζει έναν κόμβο  Ready

Σε περίπτωση προβλήματος πρόσβασης στις εικόνες ή στα Pods, δείτε το παράρτημα αντιμετώπισης προβλημάτων του 02-COMMANDES.md.


Μάθημα δημιουργημένο από τον Dr. Haythem REHOUMA — Ανάπτυξη και ανάπτυξη λύσεων δεδομένων