Labels și selectors
Un label este o pereche cheie–valoare atașată unui obiect Kubernetes. Selectors folosesc aceste labels pentru a identifica un set de obiecte.
Pod-urile Ticketing API au următoarele labels:
labels:
app: ticketing-api
version: v1
Deployment-ul folosește label-ul app pentru a identifica Pod-urile gestionate:
selector:
matchLabels:
app: ticketing-api
Service-ul folosește același label pentru a selecta Pod-urile către care trimite trafic:
selector:
app: ticketing-api
Listați Pod-urile pe baza selectorului și afișați labels:
kubectl get pods -n cc-lab2 \
-l app=ticketing-api \
--show-labels
Comparați Pod-urile selectate cu endpoint-urile Service-ului:
kubectl get pods -n cc-lab2 -l app=ticketing-api -o wide
kubectl get endpointslices -n cc-lab2 \
-l kubernetes.io/service-name=ticketing-api \
-o wide
Service-ul nu caută Pod-uri după nume și nu memorează adresele lor IP. El selectează dinamic Pod-urile ale căror labels corespund selectorului.
Dacă selectorul Service-ului nu corespunde niciunui Pod, Service-ul continuă să existe, dar nu are endpoint-uri și nu poate trimite traficul către aplicație.