Skip to main content

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-ului
  • kind – tipul obiectului
  • metadata – numele, namespace-ul, labels și alte informații despre obiect
  • spec – 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.