We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

Nodes

We've talked about how in a production environment, you'll have multiple nodes in your cluster. For this course, we've been using a single node cluster with minikube. The nice thing about Kubernetes is that almost everything you do with it is abstracted away from the underlying infrastructure with the kubectl CLI.

All the commands we've been using locally will work the same way on a production cluster.

Ways to Deploy to Production

There are several popular ways to deploy a Kubernetes cluster to production:

Gke, Eks, Aks

These are all managed Kubernetes services, offered by the big 3 cloud providers. They're all pretty similar, though I believe GKE is generally the most feature-rich of the three. GKE also has a cool auto-pilot mode that makes it so that you don't have to worry about managing nodes at all.

The nice thing about a managed offering is that it can be configured to handle autoscaling at the node level. This means that you can set up your cluster to automatically add and remove nodes based on the load of your cluster.

Manual

You can also set up your own cluster manually. I've worked on teams where a cloud engineering team has custom scripts that configure a cluster on top of standard EC2 instances. Then they have their own autoscaling scripts that add and remove nodes based on the load of the cluster. I happened to work at a company that manually deployed k8s to a group of AWS virtual machines, but you could also do the same thing on physical machines.

Deploying manually was more popular before the managed services were released, but it's still a viable option if you want more control over your cluster.