Laboratorul 3 - Stare, configurare și reziliență în Kubernetes
În Laboratorul 2 am rulat Ticketing API în Kubernetes folosind stocare în memorie. Mai multe replici puteau servi cereri, dar fiecare Pod avea propria stare, iar datele dispăreau la recrearea acestuia.
În acest laborator conectăm aceeași aplicație la PostgreSQL și urmărim ce înseamnă să rulezi o componentă cu stare într-un sistem orchestrat.
Vom lucra cu repository-ul Cloud-Computing-UPB/lab3, care conține aplicația și manifestele Kubernetes folosite în exerciții.
Obiective
La finalul laboratorului veți putea:
- să separați configurația nesensibilă de credențiale prin ConfigMap și Secret
- să explicați rolurile StorageClass, PersistentVolume și PersistentVolumeClaim
- să diferențiați un Deployment de un StatefulSet
- să rulați PostgreSQL cu stocare persistentă
- să configurați startup, liveness și readiness probes
- să definiți requests, limits și un security context
- să urmăriți degradarea și recuperarea aplicației după indisponibilitatea bazei de date
- să verificați că datele supraviețuiesc recreării Pod-ului PostgreSQL.
📄️ De la stateless la stateful
De unde pornim
📄️ Pregătirea clusterului
Obținerea repository-ului
📄️ ConfigMap și Secret
Configurația unei aplicații nu trebuie inclusă direct în imaginea containerului.
📄️ PostgreSQL și stocarea persistentă
Service-ul PostgreSQL
📄️ API-ul și probele de sănătate
De ce nu este suficient un singur endpoint
📄️ Resurse și security context
Requests și limits
📄️ Reziliență și persistență
În această secțiune provocăm controlat două tipuri de defect: dispariția unei
📄️ Strategii de deployment - sinteză
În Laboratorul 2 am realizat un rolling update și un rollback. Strategiile de
📄️ Recapitulare și curățare
Starea finală