Să învățăm în detaliu arhitectura Kubernetes.

Presupun că aveți o înțelegere de bază a Kubernetes. Dacă nu, consultați articolele de introducere și instalare următoare.

Kubernetes Introducere pentru începători

Cum se instalează Kubernetes pe Ubuntu 18?

Kubernetes urmează arhitectura master-slave. Arhitectura Kubernetes are un nod principal și noduri de lucru. Există patru componente ale unui nodul principal.

  • Server API Kube
  • controlor
  • Scheduler
  • etcd

Si nod muncitor are trei componente.

  • kubelet
  • Kube-proxy
  • timpul de rulare a containerului

Așa arată o arhitectură Kubernetes:

arhitectura kubernetes

Permiteți-mi să vă povestesc în detaliu componentele nodului principal și nodurile lucrătorului.

Nodul principal

Nodul principal gestionează clusterul Kubernetes și este punctul de intrare pentru toate sarcinile administrative. Puteți vorbi cu nodul principal prin intermediul CLI, GUI sau API. Pentru atingerea toleranței la erori, în cluster pot exista mai multe noduri master. Când avem mai mult de un nod principal, ar exista un mod de disponibilitate ridicat și cu un lider care efectuează toate operațiunile. Toate celelalte noduri master ar fi adepții acelui nod maestru lider.

De asemenea, pentru a gestiona starea clusterului, Kubernetes folosește etcd. Toate nodurile master se conectează la etcd, care este un depozit de valori cheie distribuite.

nodul principal kubernetes

Permiteți-mi să vă explic despre toate aceste componente una câte una.

Server API

Serverul API realizează toate sarcinile administrative pe nodul principal. Un utilizator trimite comenzile de odihnă către serverul API, care apoi validează solicitările, apoi le procesează și le execută. etcd salvează starea rezultată a clusterului ca un depozit de valori cheie distribuite.

Scheduler

După aceea, avem un programator. Așa cum sugerează și numele, programatorul planifică lucrul la diferite noduri de lucru. Are informații despre utilizarea resurselor pentru fiecare nod muncitor. Planificatorul ia în considerare, de asemenea, calitatea serviciilor, localitatea datelor și mulți alți parametri de acest tip. Apoi programatorul planifică activitatea în termeni de poduri și servicii.

Managerul controlorului

Buclele de control care nu termină care reglementează starea clusterului Kubernetes este gestionat de Control Manager. Acum, fiecare dintre aceste bucle de control știe despre starea dorită a obiectului pe care îl gestionează și apoi se uită la starea lor curentă prin serverele API.

Într-o buclă de control, dacă starea dorită nu îndeplinește starea curentă a obiectului, atunci pașii corectivi sunt făcuți de bucla de control pentru a aduce starea curentă la fel ca starea dorită. Deci, controlerul de control se asigură că starea dvs. curentă este aceeași cu starea dorită.

etcd

Etcd este un depozit de valori cheie distribuit care este utilizat pentru a stoca starea clusterului. Deci, fie trebuie să fie o parte a maestrului Kubernetes, fie îl puteți configura și extern. etcd este scris în goLang și se bazează pe Consensul plutei algoritmul.

Pluta permite colecției de mașini să funcționeze ca un grup coerent care poate supraviețui eșecurilor unora dintre membrii săi. Chiar dacă unii dintre membri nu reușesc să funcționeze, acest algoritm poate funcționa în orice moment. Unul dintre nodurile din grup va fi maestrul, iar restul vor fi adepții.

Nu poate exista un singur stăpân și toți ceilalți maeștri trebuie să-l urmeze. Pe lângă stocarea stării clusterului, etcd este de asemenea utilizat pentru a stoca detaliile de configurare, cum ar fi subnetele și hărțile de configurare.

Nodul muncitor

Un nod muncitor este un server virtual sau fizic care rulează aplicațiile și este controlat de nodul principal. Podurile sunt programate pe nodurile lucrătorului, care au instrumentele necesare pentru a le rula și conecta. Podurile nu sunt decât o colecție de containere.

Iar pentru a accesa aplicațiile din lumea externă, trebuie să vă conectați la nodurile lucrătorului și nu la nodurile master.

nodul lucrătorului kubernetes

Să explorăm componentele nodului lucrătorului.

Runtime containere

Runtime-ul containerului este utilizat, practic, pentru a rula și gestiona un ciclu de viață continuu pe nodul lucrătorului. Câteva exemple de perioade de rulare a containerului pe care vi le pot oferi sunt containerele rkt, lxc etc. ca timpul de rulare a containerului.

Kubelet

Kubelet este practic un agent care rulează pe fiecare nod lucrător și comunică cu nodul principal. Deci, dacă aveți zece noduri de lucru, kubelet rulează pe fiecare nod de lucrător. Primește definiția podului prin diferite mijloace și rulează containerele asociate cu acel port. De asemenea, se asigură că containerele care fac parte din păstăi sunt întotdeauna sănătoase.

Kubeletul se conectează la timpul de rulare al containerului folosind cadrul gRPC. Kubeletul se conectează la interfața de rulare a containerului (CRI) pentru a efectua containere și operații de imagine. Serviciul de imagine este responsabil pentru toate operațiunile legate de imagine, în timp ce serviciul de rulare este responsabil pentru toate operațiunile legate de pod și container. Aceste două servicii au două operații diferite de efectuat.

Permiteți-mi să vă spun ceva interesant, runtimes-ul de containere obișnuit să fie codat în Kubernetes, dar odată cu dezvoltarea CRI, Kubernetes poate utiliza acum diferite perioade de containere, fără a fi nevoie să recompilăm. Deci, orice timp de rulare a containerului care implementează CRI poate fi utilizat de Kubernetes pentru a gestiona păstăi, containere și imagini de container. Containerele Docker și containerele CRI sunt două exemple de shim CRI. Cu docker shim, containerele sunt create folosind docker instalat pe nodurile lucrătorului, iar apoi docker-ul intern folosește un container pentru a crea și gestiona containere

Kube-proxy

Kube-proxy rulează pe fiecare nod de lucru ca proxy de rețea. Acesta ascultă serverul API pentru fiecare creare sau ștergere a punctului de serviciu. Pentru fiecare punct de serviciu, kube-proxy stabilește rutele astfel încât să poată ajunge la acesta.

Concluzie

Sper că acest lucru vă va ajuta să înțelegeți arhitectura Kubernetes într-un mod mai bun. Abilitățile Kubernetes sunt întotdeauna la cerere și, dacă doriți să învățați să construiți cariera, verificați acest lucru Curs Udemy.

ETICHETE:

  • Docher

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me