chapter three

3 Deploying your first application on Kubernetes

 

This chapter covers

  • Running a local Kubernetes cluster
  • Setting up a cluster in the cloud
  • Setting up and using kubectl

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.

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:

  • Google Kubernetes Engine (GKE)
  • Amazon Elastic Kubernetes Service (EKS)
  • Microsoft Azure Kubernetes Service (AKS)
  • IBM Cloud Kubernetes Service
  • Oracle Cloud Infrastructure Container Engine for Kubernetes
  • DigitalOcean Kubernetes (DOKS)
  • Alibaba Cloud Container Service

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

Summary