Kubernetes

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Kubernetes
software
Siglă
Tip Software de gestionare a clusterelor (nu este listat )
Dezvoltator Google
Data primei versiuni 7 iunie 2014
Ultima versiune 1.21.2 (17 iunie 2021)
Sistem de operare Multiplatform
Limba Merge
Licență Apache 2.0
( Licență gratuită )
Site-ul web kubernetes.io

Kubernetes (prescurtat K8s ) este un sistem open-source de orchestrare și gestionare a containerelor . [1] Dezvoltat inițial de Google , este acum întreținut de Cloud Native Computing Foundation . Funcționează cu multe sisteme de containere, inclusiv Docker .

Arhitectură

Arhitectura unui cluster Kubernetes

Kubernetes este un software format din mai multe componente software aranjate în funcție de modelul orchestratorului . Acest model distinge participanții în maeștri și noduri. Se coordonează pentru a rula volumul de lucru pe serverele care formează un cluster controlat de Kubernetes.

Componentele care controlează execuția containerelor aplicației sunt grupate în planul de control . Planul de date, pe de altă parte, grupează componentele software implicate în funcționalitățile care gestionează volumul de lucru al clusterului. Controlul sistemului se face prin specificarea stării dorite . Fiecare participant este activat pentru a ajuta la schimbarea sistemului către starea dorită definită în master.

Starea sistemului este reprezentată în Kubernetes prin conceptul de resursă . Sunt definite resurse de bază suficiente pentru a opera clusterul, care pot fi apoi integrate cu resurse definite de terți pentru a extinde funcționalitățile disponibile.

Nodul planului de control

Nodul master sau de control al planului este actorul central al unui cluster, deoarece toate celelalte noduri se referă la acesta pentru a se coordona în executarea containerelor. Masterul se ocupă numai de funcția de orchestrare a nodurilor și nu de rularea containerelor de aplicații. Execută procesele planului de control și, deoarece aceste procese sunt centrale pentru funcționarea clusterului, masterul este adesea reprodus pe mai multe servere pentru a garanta disponibilitatea ridicată a serviciului.

kube-apiserver

Această componentă implementează și pune la dispoziție API-urile Kubernetes, expunând o interfață REST la starea clusterului. Reprezintă singurul canal de coordonare și control, atât pentru noduri, cât și pentru operatori / administratori.

kube-controller-manager

Managerul controlerului are grijă în permanență să se asigure că starea actuală a sistemului coincide cu starea dorită în așa-numita buclă de reconciliere . Intervențiile necesare pentru a atinge starea dorită sunt făcute de controlere pentru funcții specifice activate la rândul lor de managerul controlerului.

kube-scheduler

Planificatorul decide cum să aloce sarcina de lucru specificată de starea dorită pe nodurile care alcătuiesc clusterul. Alegerea nodurilor pentru a atribui sarcina depinde de algoritmul de alocare utilizat. În cel mai frecvent caz, alegerea se face pe baza disponibilității resurselor pe noduri.

Etcd

Etcd este componenta masterului care se ocupă de menținerea stării sistemului. Componentele planului de control sunt fără stare și se referă, prin kube-apiserver , la starea menținută în etcd. Din acest motiv, demonul etcd este, de asemenea, redundant în instalațiile cu disponibilitate ridicată .

Nodul muncitorului

Un nod, numit și lucrător , este responsabil pentru executarea sarcinii de lucru în modul definit de comandant. Pentru a rula încărcările de lucru, nodul trebuie să aibă un container de execuție, cum ar fi Docker sau rkt .

Un nod este identificabil unu la unu cu un singur server în cluster. Prin urmare, un grup de noduri este denumit adesea direct „cluster Kubernetes”.

Arhitectura descentralizată a clusterului permite unui nod să mențină o continuitate limitată în susținerea volumului de lucru chiar și în cazul eșecului comunicării cu masterul.

kubelet

Kubelet este componenta planului de control care controlează resursele și gestionează volumul de lucru pe un singur nod. Menține comunicarea cu maestrul și intervine constant pe nod pentru a atinge și a menține starea dorită.

kube-proxy

Componenta proxy este dedicată redirecționării traficului între noduri și configurării regulilor de rețea pe acestea. Gestionarea accesului la servicii este făcută transparentă prin intermediul proxy-ului.

Timpul de rulare al containerului

Sarcina de lucru constă din containere care rulează într-un container de execuție controlat de kubelet. Runtime-ul abstractizează aspecte precum resursele de calcul disponibile, stocarea și rețeaua. Docker este un exemplu de container de execuție compatibil Kubernetes.

Resurse cluster

În Kubernetes, starea sistemului este descrisă utilizând conceptul de resursă. Resursele descriu starea dorită , adică starea dorită a sistemului. Odată ce o descriere a resursei a fost creată sau modificată pe master, diferitele componente ale Kubernetes fac modificările necesare pentru a trece de la starea curentă a sistemului la starea dorită. Câteva exemple de modificări ale sistemului ar fi pornirea containerelor noi și configurarea rețelei pentru a le expune la internet.

Utilizarea unui model de resurse permite descrierea cu un limbaj declarativ a stării pe care trebuie să o asume sistemul, fără a fi nevoie să cunoască tehnologia de bază. Acest lucru este deosebit de important în contextele cloud în care Kubernetes este oferit ca un serviciu cu flexibilitatea de a alege tehnologia de bază.

Kubernetes vă permite să adăugați etichete valoare-cheie numite „etichete” la orice resursă, cum ar fi pod-uri și noduri . Acest lucru vă permite să creați referințe între diferitele resurse pentru a implementa mai multe funcționalități.

Pod

Podul este resursa care descrie unitatea de bază care poate fi rulată pe un nod de cluster. Un pod grupează containere care partajează resurse și rulează pe același nod. Podul se ocupă de abstractizarea rețelei și stocării pentru a fi ușor mutat și reprodus pe nodurile cluster, permițând o scalabilitate orizontală puternică, în special pentru aplicațiile orientate spre microservicii .

Pod-urile pot fi gestionate manual prin intermediul API-urilor Kubernetes sau mai frecvent prin intermediul unor controlere care se asigură că acestea continuă să ruleze.

Serviciu

Serviciul definește modul de expunere a pod-urilor pe o rețea internă sau externă. Serviciul definește un nume care este rezolvat de DNS-ul intern al clusterului la unul dintre pod-urile sale asociate. Pod-urile asociate serviciului sunt cele care împărtășesc eticheta definită de serviciu. În mod implicit, un serviciu este expus în interiorul unui cluster, dar poate fi expus și în afara clusterului. [2]

Notă

  1. ^ github.com , https://github.com/kubernetes/kubernetes/ .
  2. ^ dasblinkenlichten.com , http://www.dasblinkenlichten.com/kubernetes-101-external-access-into-the-cluster/ .

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității GND ( DE ) 1153019000
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT