Difficulty: Intermediate
Estimated Time: 20 minutes

First Kubernetes Application

Kubernetes

This scenario takes you through the basics of deploying an application on Kubernetes. The application is nothing notable, but it's simple enough to get started. In the following steps you will learn:

  • to deploy and start the echoserver application
  • to scale the application
  • Services load balance between multiple Pods of the app
  • Kubernetes resilience maintains the declared state even with failures
  • to rollout a new version of an application

It's not vital, but you may want to first walk through the introduction to Kubernetes covered in the Minikube scenario of this course.

Conclusion

Once an application is in a container, it's fairly simple to ask Kubernetes to serve up the container in multiple Pods fronted with a load balancing Service. Thereafter, Kubernetes dutifully respects your declared request by ensuring the application remains running on the cluster.

There are many other types of resources that can be added to Kubernetes besides just Pods, Services and Deployments, however these are the most common resources. Later, explore the Helm scenarios to see how whole charts of more complex deployments can be installed.

Lessons Learned

With these steps you have learned:

  • how to Deploy an application,
  • how to Scale an application,
  • how to load balance an application with a Service for multiple Pods of an application,
  • how Resilience maintains the declared state even with failures,
  • how to Roll out new versions of an application.

For a deeper understanding of these topics and more join me, Jonathan Johnson, for a transcendent experience on the No Fluff Just Stuff Software Symposium Tour.

First App

Step 1 of 6

Your Kubernetes Cluster

For this scenario, Katacoda has just started a fresh Kubernetes cluster for you. Verify it's ready for your use.

kubectl version --short && \ kubectl get componentstatus && \ kubectl get nodes && \ kubectl cluster-info

The Helm package manager used for installing applications on Kubernetes is also available.

helm version --short

Kubernetes Dashboard

You can control the cluster with the kubectl CLI tool or through the Kubernetes Dashboard. Because the dashboard can be accessed publicly, it is protected and requires the secret access token to sign in. Copy the token from this secret.

export TOKEN=$(kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}') && echo -e "\n--- Copy and paste this token for dashboard access --\n$TOKEN\n---"

To access the dashboard, click on the Kubernetes Dashboard tab above the command line or from this link: https://[[HOST_SUBDOMAIN]]-30000-[[KATACODA_HOST]].environments.katacoda.com/. At the sign in prompt select Token and paste in the token, you copied a moment ago.

For Kubernetes clusters exposed to the public, always lock administration access including access to the dashboard.

Terminal
Terminal 2
Kubernetes Dashboard