This is an old revision of the document!
In acest laborator vom parcurge crearea de pods folosind comanda kubectl. Activitatea este echivalenta cu pornirea mai multor containere de Docker folosind docker run.
Va propunem o mini aplicatie formata din 4 componente:
Aplicatia reprezinta un model simplificat de CQRS.
Fluxul este urmatorul:
Codul este accesibil pe repo-ul nostru.
In codul sursa aveti un exemplu de docker-compose.yml, pentru a avea o perspectiva familiara asupra cum va arata deploymentul local. In Kubernetes, fiecare serviciu va fi reprezentat de un Pod.
In continuare vom folosi comenzile de Kubectl, prezentate la laboratorul trecut, pentru a porni fiecare Pod independent.
Vom lucra cu urmatoarele concepte:
Mai jos puteti regasi comenzile care vor fi efectuate pentru rezolvarea laboratorului:
kubectl run db --image=axonedge/lab-k8s-database --env="POSTGRES_USER=student" --env="POSTGRES_PASSWORD=student" --env="POSTGRES_DB=library" kubectl expose pod db --port=5432 --target-port=5432 --name=db-cluster-ip-service kubectl run rabbitmq --image=rabbitmq:3 --port=5672 kubectl expose pod rabbitmq --port=5672 --target-port=5672 --name=rabbitmq-cluster-ip-service kubectl describe pod rabbitmq kubectl describe service rabbitmq-cluster-ip-service kubectl run procesator --image=axonedge/lab-k8s-procesator --env="PGHOST=db-cluster-ip-service" --env="PGDATABASE=library" --env="PGPORT=5432" --env="PGUSER=student" --env="PGPASSWORD=student" --env="AMQPURL=amqp://rabbitmq-cluster-ip-service" kubectl logs procesator kubectl run api --image=axonedge/lab-k8s-api --env="PORT=8000" --env="PGHOST=db-cluster-ip-service" --env="PGDATABASE=library" --env="PGPORT=5432" --env="PGUSER=student" --env="PGPASSWORD=student" --env="AMQPURL=amqp://rabbitmq-cluster-ip-service" kubectl expose pod api --port=8000 --name=api-nodeport-service --type=NodePort kubectl delete --all pods kubectl delete --all services
Pentru a testa aplicatia va recomandam sa folositi Postman.
Testarea se realizeaza in felul urmator:
{ "name": "De ce iubim femeile?", "author": "Mircea Cartarescu", "price": 69, "description": "Autoironie" }