How to Build a Kubernetes Cluster with Jenkins Using Terraform and Helm: Part One
In this post, you’re going to deploy a Kubernetes cluster on AWS using Terraform and, on top of that, a Jenkins server through Helm charts. This is a hands-on example of building the cluster and deploying the cluster in AWS. You need to follow the next steps of a process, as you know everything in life is a process. Before you dive into building and deploying the cluster, let’s explain the meaning of each component: containerization, Kubernetes, continuous integration with Jenkins, infrastructure as code, Terraform, Helm charts, subnets, VPCs, security groups, and the Elastic Kubernetes Service. Prepare your coffee and enjoy the reading.
What is Containerization?
Containers have a prolonged recorded history in computing. Containers are different from hypervisor virtualization; why? Because containers run in the user space of the operating system, Hypervisor virtualization operates on a physical machine through an intermediation layer. Another name for containers is operating system virtualization. Containers allow the running of many separate user-space instances on a single host. Containers run guest operating systems like the main host. This can sometimes give you the impression that containers are less dynamic. For example, you can run Debian Linux on an Ubuntu server, but you can’t run Windows XP on top of an Ubuntu server.
What is Kubernetes?
The name Kubernetes originates from Greek, meaning “helmsman” or “pilot.” K8s as an abbreviation results from counting the eight letters between the “K” and the “s.” Kubernetes is an open-source orchestrator for deploying containerized applications. It was originally developed by Google, inspired by a decade of experience deploying scalable, reliable systems in containers via application-oriented APIs. It is now almost universally used as the standard API for creating cloud-native apps. From a cluster of Raspberry Pi devices to a warehouse full of the newest technology, Kubernetes is a tried-and-true distributed system infrastructure that is ideal for cloud-native developers of all sizes.