Sobes.tech
Middle

Τι ευθύνη έχει η control plane του Kubernetes και τι κάνουν οι worker κόμβοι;

sobes.tech AI

Απάντηση από AI

Η επίπεδος ελέγχου διαχειρίζεται το cluster: λαμβάνει εντολές, προγραμματίζει τις διαδικασίες του kube-scheduler, διαχειρίζεται τις καταστάσεις μέσω του kube-controller-manager και αποθηκεύει τη διαμόρφωση στο etcd. Οι εργαζόμενοι κόμβοι (workers) εκτελούν τις πραγματικές εργασίες (pods) υπό την διαχείριση του kubelet και εξυπηρετούν τα αιτήματα δικτύου μέσω του kube-proxy.

Επίπεδο ελέγχου:

  • kube-apiserver: Ο διακομιστής API του cluster, το μοναδικό σημείο εισόδου.
    # Παράδειγμα πρόσβασης στο API
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
      - name: my-container
        image: nginx
    
  • etcd: Κατανεμημένη, συνεπής αποθήκευση τύπου κλειδιού-τιμής για την κατάσταση του cluster.
  • kube-scheduler: Επιλέγει τον κόμβο για την τοποθέτηση νέων pods.
  • kube-controller-manager: Εκκινεί ελεγκτές που παρακολουθούν την κατάσταση του cluster και κάνουν τις απαραίτητες αλλαγές.
    • Node Controller
    • Controller Αναπαραγωγής, ReplicaSet, Deployment
    • Endpoints Controller
    • Service Account & Token Controllers
  • cloud-controller-manager (προαιρετικό): Αλληλεπιδρά με παρόχους cloud για τη διαχείριση πόρων (load balancers, διαρκείς όγκοι κ.λπ.).

Εργαζόμενοι κόμβοι:

  • kubelet: Πράκτορας που τρέχει σε κάθε κόμβο. Διαχειρίζεται τα containers στα pods, αλληλεπιδρώντας με το περιβάλλον εκτέλεσης κοντέινερ (π.χ., Docker, containerd).
    # Παράδειγμα εντολής που μπορεί να εκτελέσει το kubelet (απλουστευμένο)
    docker run nginx
    
  • kube-proxy: Διατηρεί κανόνες δικτύου στους κόμβους, διασφαλίζοντας την επικοινωνία μεταξύ pods, το δίκτυο του cluster και τον εξωτερικό κόσμο.
  • Container Runtime: Λογισμικό που είναι υπεύθυνο για την εκτέλεση κοντέινερ (Docker, containerd, CRI-O).