Mini Project: Deploying Multi Tier Application Stack
In this project , you would write definitions for deploying the vote application stack with all components/tiers which include,
- vote ui
- redis
- worker
- db
- results ui
Tasks
- Create deployments for all applications
- Define services for each tier applicable
- Launch/apply the definitions
Following table depicts the state of readiness of the above services.
App | Deployment | Service |
---|---|---|
vote | ready | ready |
redis | ready | ready |
worker | TODO | n/a |
db | ready | ready |
results | TODO | TODO |
Specs:
- worker
- image: schoolofdevops/worker:latest
- results
- image: schoolofdevops/vote-result
- port: 80
- service type: NodePort
Deploying the sample application
To create deploy the sample applications,
kubectl create -f projects/instavote/dev
Sample output is like:
deployment "db" created
service "db" created
deployment "redis" created
service "redis" created
deployment "vote" created
service "vote" created
deployment "worker" created
deployment "results" created
service "results" created
To Validate:
kubectl get svc -n instavote
Sample Output is:
kubectl get service vote
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
vote 10.97.104.243 <pending> 80:31808/TCP 1h
Here the port assigned is 31808, go to the browser and enter
masterip:31808
This will load the page where you can vote.
To check the result:
kubectl get service result
Sample Output is:
kubectl get service result
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
result 10.101.112.16 <pending> 80:32511/TCP 1h
Here the port assigned is 32511, go to the browser and enter
masterip:32511
This is the page where you should see the results for the vote application stack.