Sari la conținutul principal

Primul Pod

Înainte de a folosi un Deployment, vom porni un singur Pod pentru a observa limitele gestionării directe.

Creați namespace-ul laboratorului:

kubectl apply -f k8s/base/00-namespace.yaml

Porniți un Pod cu Ticketing API:

kubectl run ticketing-single \
--namespace cc-lab2 \
--image=ghcr.io/cloud-computing-upb/lab2:1.0.0 \
--port=8080 \
--env=USE_POSTGRES=false \
--env=APP_VERSION=single

Urmăriți starea și consultați detaliile:

kubectl get pod ticketing-single -n cc-lab2 -o wide
kubectl describe pod ticketing-single -n cc-lab2
kubectl logs ticketing-single -n cc-lab2

Expuneți temporar portul Pod-ului pe calculatorul local:

kubectl port-forward pod/ticketing-single -n cc-lab2 8080:8080

Într-un alt terminal:

curl http://localhost:8080/health
curl http://localhost:8080/info

Opriți port-forward cu Ctrl+C, apoi ștergeți Pod-ul:

kubectl delete pod ticketing-single -n cc-lab2
kubectl get pods -n cc-lab2

Pod-ul nu este recreat, deoarece nu există un controller care să îl gestioneze. În continuare vom descrie aplicația printr-un Deployment.

Imagine distroless

Containerul Ticketing API nu conține un shell. Acest lucru este intenționat. Pentru diagnosticare folosim kubectl logs, kubectl describe și, când este necesar, un Pod separat de depanare.