chapter three

3 Deploying your first application on Kubernetes

 

This chapter covers

  • Running a local Kubernetes cluster on your laptop
  • Setting up a cluster on Google Kubernetes Engine
  • Setting up a cluster on Amazon Elastic Kubernetes Service
  • Setting up and using the kubectl command-line tool
  • Deploying an application in Kubernetes and exposing it outside the cluster
  • Scaling the application horizontally

This chapter illustrates how to run a local single-node development Kubernetes cluster or set up a proper, managed multi-node cluster in the cloud. Once your cluster is up and running, you’ll use it to deploy the container you created in the previous chapter.

Note

The code files for this chapter are available at https://mng.bz/26xa.

3.1 Deploying a Kubernetes cluster

Setting up a full-fledged, multi-node Kubernetes cluster isn’t a simple task, especially if you’re not familiar with Linux and network administration. A proper Kubernetes installation spans multiple physical or virtual machines (VMs), and it requires a proper network setup to allow all containers in the cluster to communicate with each other.

You can install Kubernetes on your laptop computer, your organization’s infrastructure, or VMs provided by cloud providers (Google Compute Engine, Amazon EC2, Microsoft Azure, etc.). Alternatively, you can let the cloud provider manage your Kubernetes cluster. Here’s a short list of the largest and most popular managed Kubernetes options:

3.1.1 Using the built-in Kubernetes cluster in Docker Desktop

3.1.2 Running a local cluster using Minikube

3.1.3 Running a local cluster using kind (Kubernetes in Docker)

3.1.4 Creating a managed cluster with Google Kubernetes Engine

3.1.5 Creating a cluster using Amazon Elastic Kubernetes Service

3.1.6 Deploying a multi-node cluster from scratch

3.2 Interacting with Kubernetes

3.2.1 Setting up kubectl, the Kubernetes command-line client

3.2.2 Configuring kubectl to use a specific Kubernetes cluster

3.2.3 Using kubectl

3.2.4 Interacting with Kubernetes through web dashboards

3.3 Running your first application on Kubernetes

3.3.1 Deploying your application

3.3.2 Exposing your application to the world

3.3.3 Horizontally scaling the application

3.3.4 Understanding the deployed application

3.4 Summary