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.