The two microservices you will deploy are called
system microservice returns the JVM system properties of the running container and it returns the pod’s name in the HTTP header making replicas easy to distinguish from each other. The
inventory microservice adds the properties from the
system microservice to the inventory. This demonstrates how communication can be established between pods inside a cluster. To build these applications, navigate to the
start directory and run the following command.
Next, run the
docker build commands to build container images for your application:
docker build -t system:1.0-SNAPSHOT system/.
docker build -t inventory:1.0-SNAPSHOT inventory/.
-t flag in the
docker build command allows the Docker image to be labeled (tagged) in the
name[:tag] format. The tag for an image describes the specific image version. If the optional
[:tag] tag is not specified, the
latest tag is created by default.
Run the following command to deploy the necessary Kubernetes resources to serve the applications.
kubectl apply -f kubernetes.yaml
When this command finishes, wait for the pods to be in the Ready state. Run the following command to view the status of the pods.
When the pods are ready, the output shows
1/1 for READY and
Running for STATUS.
NAME READY STATUS RESTARTS AGE
system-deployment-6bd97d9bf6-6d2cj 1/1 Running 0 34s
inventory-deployment-645767664f-7gnxf 1/1 Running 0 34s
After the pods are ready, you will make requests to your services.
http://[hostname]:31000/system/properties and use the user name
bob and the password
bobpwd to authenticate. Replace
[hostname] with the IP address or host name of your Kubernetes cluster. Open your browser’s developer console and examine the response headers. Observe that the
X-App-Name header currently has the value
Similarly, navigate to
http://[hostname]:32000/inventory/systems/system-service and the system will be added to your inventory.