Using Microservices in Kubernetes

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

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 port 3000. Create a NodePort Service called pirate-day-backend-svc for this backing service with the nodePort 30081.

Set Up the Kubernetes Deployment

Create a Deployment called pirate-day-dep to run the app with 3 replicas. Include the label app=pirate-day-frontend on each Pod. An existing NodePort Service will allow access to the app using this label at http://<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.

Additional Resources

Welcome to PirateCorp! A company that exists to promote pirate-related history and lore!

We're developing our new website, Is It International Talk Like a Pirate Day?. This site will inform the public whether or not it is currently International Talk Like a Pirate Day.

We'd like you to work on setting up a backing service for the app to talk to, as well as configuring a deployment and rollout process for new versions of the code.

Note: You will need a Docker Hub account to complete this lab.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?