Skip to content

Latest commit

 

History

History
139 lines (90 loc) · 2.72 KB

creating-and-managing-services.md

File metadata and controls

139 lines (90 loc) · 2.72 KB

Creating and Managing Services

Services provide stable endpoints for Pods based on a set of labels.

In this lab you will create the monolith service and "expose" the secure-monolith Pod externally. You will learn how to:

  • Create a service
  • Use label selectors to expose a limited set of Pods externally

Tutorial: Create a Service

Explore the monolith service configuration file:

cat services/monolith.yaml

Modify the monolith service to expose it externally as a Load Balancer:

vim services/monolith.yaml

Change type: NodePorts to a load balancer, so it will be exposed publicly:

type: LoadBalancer

Now create the service using kubectl:

kubectl create -f services/monolith.yaml

Exercise: Interact with the Monolith Service Remotely

Hints

kubectl get services
curl -k https://<EXTERNAL_IP>

Quiz

  • Why are you unable to get a response from the monolith service?

Exercise: Explore the monolith Service

Hints

kubectl get services monolith
kubectl describe services monolith

Quiz

  • How many endpoints does the monolith service have?
  • What labels must a Pod have to be picked up by the monolith service?

Tutorial: Add Labels to Pods

Currently the monolith service does not have any endpoints. One way to troubleshoot an issue like this is to use the kubectl get pods command with a label query.

kubectl get pods -l "app=monolith"
kubectl get pods -l "app=monolith,secure=enabled"

Notice this label query does not print any results

Use the kubectl label command to add the missing secure=enabled label to the secure-monolith Pod.

kubectl label pods secure-monolith 'secure=enabled'

View the list of endpoints on the monolith service:

kubectl describe services monolith

Quiz

  • How many endpoints does the monolith service have?

Exercise: Interact with the Monolith Service Remotely

Hints

kubectl get services monolith
curl -k https://<EXTERNAL_IP>

Tutorial: Remove Labels from Pods

In this exercise you will observe what happens when a required label is removed from a Pod.

Use the kubectl label command to remove the secure label from the secure-monolith Pod.

kubectl label pods secure-monolith secure-

View the list of endpoints on the monolith service:

kubectl describe services monolith

Quiz

  • How many endpoints does the monolith service have?

Summary

In this lab you learned how to expose Pods using services and labels.