Manifestele declarative
Resursele Kubernetes pot fi create prin comenzi imperative sau prin manifestele YAML declarative. Pentru configurații reproductibile folosim manifestele din repository.
Un manifest Kubernetes conține, în general, patru câmpuri principale:
apiVersion– versiunea API-uluikind– tipul obiectuluimetadata– numele, namespace-ul, labels și alte informații despre obiectspec– starea dorită a obiectului.
Exemplu minimal:
apiVersion: v1
kind: Pod
metadata:
name: example
namespace: cc-lab2
spec:
containers:
- name: example
image: ghcr.io/cloud-computing-upb/lab2:1.0.0
kubectl poate genera un punct de plecare pentru un manifest fără să creeze resursa:
kubectl run ticketing-example \
--image=ghcr.io/cloud-computing-upb/lab2:1.0.0 \
--port=8080 \
--dry-run=client \
-o yaml
Comenzile folosite cel mai des sunt:
kubectl diff -f <fișier.yaml>
kubectl apply -f <fișier.yaml>
kubectl delete -f <fișier.yaml>
kubectl apply este idempotent: aceeași configurație poate fi aplicată din nou, iar Kubernetes va modifica doar ceea ce diferă față de starea declarată.
tip
Înainte de o modificare, folosiți kubectl diff. Astfel puteți vedea ce ar urma să se schimbe fără să modificați clusterul.