Un Pod este cea mai mică unitate care poate fi implementată în Kubernetes. Acesta acționează ca un înveliș pentru unul sau mai multe containere care trebuie să ruleze împreună și să partajeze resurse.
Kubernetes utilizează Pod-urile pentru a implementa, gestiona și scala aplicațiile containerizate într-un cluster. În timp ce containerele rulează aplicația propriu-zisă, Pod-urile asigură mediul în care acestea funcționează.
Cuprins
Cum funcționează podurile
Un Pod poate conține un singur container sau mai multe containere.
Toate containerele din același Pod au în comun:
- Aceeași interfață de rețea și aceeași adresă IP
- Volume de stocare partajate
- Un ciclu de viață comun
Deoarece împărtășesc același mediu, containerele din interiorul unui Pod pot comunica între ele direct, fără o configurare suplimentară a rețelei.
De ce Kubernetes folosește Pod-uri
Podurile oferă o modalitate consistentă de a gestiona containerele la nivelul unui cluster. În loc să gestioneze containerele individual, Kubernetes programează și monitorizează podurile.
Acest lucru permite Kubernetes să:
- Să implementeze aplicații pe nodurile clusterului
- Să repornească sarcinile de lucru eșuate
- Să scaleze aplicațiile în sus sau în jos
- Să mute sarcinile de lucru între noduri atunci când este necesar
În majoritatea mediilor Kubernetes, podurile sunt create și gestionate automat de resurse de nivel superior, precum Deployments, StatefulSets sau Jobs.
Pod vs. Container
Pod ≠ Container
Un container conține aplicația și dependențele acesteia.
Un Pod este obiectul Kubernetes care găzduiește unul sau mai multe containere.
În multe implementări, un Pod conține un singur container. Cu toate acestea, mai multe containere pot fi grupate în același Pod atunci când trebuie să partajeze resurse sau să colaboreze strâns.
Cazuri comune de utilizare a Pod-urilor
Aplicații cu un singur container
Cel mai frecvent caz de utilizare este rularea unui singur container de aplicație în interiorul unui Pod. Kubernetes gestionează Pod-ul, în timp ce containerul rulează aplicația.
Containere auxiliare
Un Pod poate conține, de asemenea, containere suplimentare care susțin aplicația principală. De exemplu, un container poate procesa cererile aplicației, în timp ce altul colectează jurnale sau sincronizează date.
Stocare partajată și rețea
Containerele din cadrul aceluiași Pod pot accesa volumele de stocare partajate și pot comunica prin intermediul interfeței de rețea locală, simplificând coordonarea.
Implicații practice
Podurile sunt concepute pentru a fi temporare. Dacă un Pod se defectează, Kubernetes poate crea automat unul de înlocuire.
Din acest motiv, datele aplicației ar trebui, în general, stocate în volume persistente sau servicii externe, mai degrabă decât în interiorul Pod-ului însuși.
Atunci când se scalează o aplicație, Kubernetes creează replici suplimentare ale podului, în loc să adauge mai multe containere la un pod existent.
Rezumat
Un Pod este unitatea de execuție de bază în Kubernetes. Acesta grupează unul sau mai multe containere într-un mediu partajat, cu rețea, stocare și gestionare a ciclului de viață comune.
Deși containerele rulează aplicația, Kubernetes gestionează podurile, făcându-le un element fundamental al orchestrării containerelor.