Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cc:laboratoare:07 [2021/12/05 23:21]
alexandru.hogea [Variabile de mediu în Kubernetes]
cc:laboratoare:07 [2021/12/06 12:33] (current)
alexandru.hogea [Secrete în Kubernetes]
Line 1: Line 1:
-===== Laboratorul 07 - Secrete ​și variabile de mediu în Kubernetes =====+===== Laboratorul 07 - Secretevariabile de mediu și persistența datelor ​în Kubernetes =====
  
 În laboratoarele anterioare am folosit variabilele de mediu direct în fișierele YAML ale pod-urilor. Evident, în cazul datelor sensibile, nu este o idee bună pentru ca oricine are acces la fișierele de configurare YAML să aibă posibilitatea de a vedea variabilele de mediu definite. Problema apare în momentul în care în variabilele de mediu definim nume de utilizatori și parole. ​ În laboratoarele anterioare am folosit variabilele de mediu direct în fișierele YAML ale pod-urilor. Evident, în cazul datelor sensibile, nu este o idee bună pentru ca oricine are acces la fișierele de configurare YAML să aibă posibilitatea de a vedea variabilele de mediu definite. Problema apare în momentul în care în variabilele de mediu definim nume de utilizatori și parole. ​
Line 28: Line 28:
 Creați acest secret: Creați acest secret:
 <code bash> <code bash>
-kubectl ​create ​-f db-secret.yaml+kubectl ​apply -f db-secret.yaml 
 +</​code>​
 Incercati sa vizualizati datele din acest secret: Incercati sa vizualizati datele din acest secret:
 +<code bash>
 kubectl get secret db-secret kubectl get secret db-secret
 kubectl describe secret db-secret kubectl describe secret db-secret
Line 202: Line 204:
 === Temă === === Temă ===
 Modificați deployment-ul astfel încât să nu folosim pod-uri, ci să folosim deployment-uri acolo unde este nevoie. Modificați deployment-ul astfel încât să nu folosim pod-uri, ci să folosim deployment-uri acolo unde este nevoie.
 +
 +==== Persistența datelor ====
 +Adăugați câteva intrări în baza de date. Verificați ca acestea există. Ștergeți podul de DB, creați unul nou și executați o cerere de tip GET. Mai avem intrări în baza de date?
 +
 +Pentru ca datele din baza de date să nu dispară odată cu ștergerea pod-ului, folosim PV (PersistentVolume) și PVC (PersistentVolumeClaims).
 +
 +Un fișier de bază pentru a crea un PersistentVolume găsiti mai jos. Proprietățile pe care le folosim aici sunt destul de intuitive.
 +
 +<code yaml>
 +apiVersion: v1
 +kind: PersistentVolume
 +metadata:
 +    name: mypv
 +spec:
 +  accessModes:​
 +    - ReadWriteMany
 +  capacity:
 +    storage: 1Gi
 +  hostPath:
 +    path: /tmp/data
 +</​code>​
 +
 +Dupa ce creăm acest volum, verificăm că acesta există:
 +<code bash>
 +kubectl get pv # în continuare urmăriți câmpul de status
 +</​code>​
 +
 +Creăm un PVC pe baza următorului fișier de configurare:​
 +<code yaml>
 +apiVersion: v1
 +kind: PersistentVolumeClaim
 +metadata:
 +  name: mypvc
 +spec:
 +  accessModes:​
 +    - ReadWriteMany
 +  resources:
 +    requests:
 +      storage: 1Gi
 +</​code>​
 +
 +După ce am creat și un PVC, verificați din nou atât PV, cât și PVC:
 +<code bash>
 +kubectl get pv # urmăriți câmpul de status
 +kubectl get pvc
 +</​code>​
 +
 +Cum folosim un volum într-un pod? Modificăm fișierul de configurare al pod-ului pentru baza de date astfel încât acesta să folosească noul volum:
 +<code yaml>
 +apiVersion: v1
 +kind: Pod
 +metadata:
 +  creationTimestamp:​ null
 +  labels:
 +    run: db
 +  name: db
 +spec:
 +  containers:
 +  - image: axonedge/​lab-k8s-database
 +    name: db
 +    envFrom:
 +      - secretRef:
 +          name: db-secret
 +    volumeMounts:​
 +      - mountPath: /​var/​lib/​postgresql/​data
 +        name: mypd
 + 
 + 
 +  volumes:
 +  - name: mypd
 +    persistentVolumeClaim:​
 +      claimName: mypvc
 +</​code>​
 +
 +Ștergeți pod-ul de DB creat anterior și creați altul pe baza fișierului de mai sus.
 +Adăugați câteva intrări în baza de date, ștergeți pod-ul și apoi creați altul nou. Putem observa că de data aceasta baza de date nu este goală. ​
  
cc/laboratoare/07.1638739263.txt.gz · Last modified: 2021/12/05 23:21 by alexandru.hogea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0