Containers are a method of packaging applications together with the files, libraries, and dependencies they need to run. This allows the same application to operate consistently across different environments, from development systems to production infrastructure.
In Kubernetes, containers are the workloads that the platform deploys and manages across a cluster.
Table of Contents
What Is a Container?
Un container este un mediu de execuție izolat care include:
- Codul aplicației
- Bibliotecile și dependențele necesare
- Fișiere de configurare
- Componente de execuție necesare aplicației
Deoarece tot ceea ce are nevoie aplicația este inclus într-un singur pachet, containerele se comportă în mod consecvent, indiferent de sistemul de operare sau de infrastructura de bază.
Containerele sunt ușoare în comparație cu mașinile virtuale tradiționale, deoarece partajează sistemul de operare gazdă, în loc să ruleze un sistem de operare separat pentru fiecare instanță.
Cum funcționează containerele în Kubernetes
Kubernetes este o platformă de orchestrare a containerelor care automatizează implementarea, scalarea și gestionarea aplicațiilor containerizate.
În loc să gestioneze direct containerele individuale, Kubernetes rulează de obicei containerele în interiorul Pod-urilor, care sunt cele mai mici unități care pot fi implementate într-un cluster Kubernetes.
Kubernetes poate efectua automat următoarele:
- Să implementeze containere pe nodurile disponibile
- Să repornească sarcinile de lucru care au eșuat
- Să scaleze aplicațiile în sus sau în jos
- Să distribuie sarcinile de lucru în cadrul unui cluster
- Să monitorizeze starea de sănătate a aplicațiilor care rulează
Container vs. mașină virtuală
Container ≠ Mașină virtuală
O mașină virtuală include un sistem de operare complet, împreună cu aplicația.
Un container include doar aplicația și dependențele necesare, împărțind sistemul de operare gazdă cu alte containere.
Această abordare reduce consumul de resurse și permite aplicațiilor să pornească mult mai repede.
Containere într-un cluster Kubernetes
Un cluster Kubernetes este format din unul sau mai multe noduri care rulează sarcini de lucru containerizate.
Containerele sunt grupate în poduri, iar Kubernetes programează aceste poduri pe nodurile disponibile în funcție de disponibilitatea resurselor și de regulile de configurare.
Această arhitectură permite aplicațiilor să rămână disponibile chiar și în cazul în care anumite containere sau noduri se defectează.
Implicații practice
Containerele simplifică implementarea aplicațiilor, deoarece aceeași imagine de container poate fi utilizată în mai multe medii.
Atunci când rulați containere în Kubernetes, de obicei nu gestionați manual containerele individuale. În schimb, Kubernetes gestionează automat procesele de implementare, scalare, înlocuire și recuperare.
Din acest motiv, Kubernetes este utilizat în mod obișnuit pentru aplicații care necesită scalabilitate, disponibilitate ridicată sau gestionarea automată a infrastructurii.
Rezumat
Un container Kubernetes este o aplicație containerizată care rulează într-un mediu Kubernetes. Containerul include tot ceea ce are nevoie aplicația pentru a rula, în timp ce Kubernetes oferă instrumentele necesare pentru implementarea, scalarea, monitorizarea și gestionarea acestor containere în cadrul unui cluster.
Containerele sunt elementele constitutive ale aplicațiilor moderne native pentru cloud, iar Kubernetes oferă stratul de orchestrare care le permite să funcționeze eficient la scară largă.