One of the greatest strengths of Kubernetes is how it simplifies networking from the perspective of an application designer. In this lab, you will have the chance to explore microservice design in Kubernetes by wiring an application to its backing services. You will also be able to smoothly perform a rolling update on this application using the architecture you have built.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Implement the Backing Service
The application relies on a backing web service. The Pod(s) for the backing service are already running in the cluster, and they have the label
app=pirate-day-backend
. The backing service application listens on port3000
. Create a NodePort Service calledpirate-day-backend-svc
for this backing service with the nodePort30081
.- Set Up the Kubernetes Deployment
Create a Deployment called
pirate-day-dep
to run the app with3
replicas. Include the labelapp=pirate-day-frontend
on each Pod. An existing NodePort Service will allow access to the app using this label athttp://<K8s_SERVER_PUBLIC_IP>:30080
.Use the image
linuxacademycontent/pirate-day:0.0.2
.A ConfigMap already exists in the cluster called
pirate-config
. This ConfigMap contains a top-level key called.env
that represents the configuration file for the app. Mount this config data as a file to the containers at/usr/src/app/.env
. This will ensure the frontend points to the correct URL for the backing service.- Perform a Rolling Update
Perform a rolling update to update the app to a new version. Change the Deployment to use the image
linuxacademycontent/pirate-day:0.0.3
.