Kubernetes can be deployed on various systems in different ways.
- On personal laptop
- Physical or Virtual Servers within an organization
- On the Cloud
Depending on the requirements the cloud ecosystem and the kind of applications you wish to deploy. You can choose on of the solutions.
On personal laptop or local machine.
You have some options to start.
- On the Linux machine, you can get started with installing the binaries manually and setting up a local cluster. However, this is too tedious especially if you are just getting started.
- So, relying on a solution that automates all that will help in setting up a cluster in a matter of minutes.
- On windows, on the other hand, you cannot set up Kubernetes natively as there are no windows binaries. You must rely on virtualization software like Hyper-V or Vmware workstation or VirtualBox to create Linux VMs on which you can run Kubernetes. There are also solutions available to run Kubernetes components as Docker containers on Windows VMs But, even then the docker images are Linux-based and under the hoods, they run on a small Linux OS created by Hyper-V for running Linux docker containers.
What are some of the solutions available to easily get started with Kubernetes on a local machine?
- Minikube, deploys a single node cluster easily. It relies on one of the virtualization software like Oracle Virtualbox to create virtual machines that run Kubernetes cluster components.
- Deploys VMs
- The Kubeadm tool can be used to deploy a single node or a multi-node cluster real quick before this you must provision the required hosts with supported configuration yourself. At the same time, it allows for deploying multi-node clusters, whereas the former doesn’t
- Requires VMs to be ready.
Deploying a Kubernetes cluster locally on a laptop is usually for learning, testing and development purposes.
For the Production Propose
there are many ways to get started with a Kubernetes cluster. Both in a private or a public environment.
|Turnkey Solutions||Hosted Solutions (Managed Solutions)|
|Turnkey Solutions are where you provision the required VMs and use some kind of tools or scripts to configure the Kubernetes cluster on them. At the end of the day you are responsible for maintaining those VMs, and patching them and create, upgrading them etc.||Cluster management and maintenance are mostly made easy using the tools and scripts.|
Deploying a Kuberentes cluster on AWS using Kops tool. Hosted solutions are more like Kubernetes as a service solution, where the cluster along with the required VMs.
Google Container Engine lets you deploy a Kubernetes cluster in a matter of minutes.
|* You Provision VMs|
* You Configure VMs
* You Use Scripts to Deploy Cluster
* You Maintain VMs yourself
|* Kubernetes as a service|
* Provider provisions VMs
* Provider installs Kubernetes
* Provider maintains VMs
Eg: Google Container Engine.
Kubernetes certified solution
- Cloud Foundry Container
- VMware Cloud PKS
Openshift is a popular on Platform Kubernetes platform by RedHat
Openshift is an open source container application platform and is built on top of Kubernetes. It provides a set of additional tools and a nice GUI to create and manage Kubernetes constructs and easily integrate with CI/CD pipelines etc.
Cloud Foundry Container Runtime is an open-source project from Cloud Foundry that helps in deploying and managing highly available Kubernetes clusters using their open-source tool called BOSH
If you wish to leverage your existing Vmware environment for Kubernetes, then the Vmware Cloud PKS solution is one that should be evaluated.
Vagrant provides a set of useful scripts to deploy a Kubernetes cluster on different cloud service providers
All of the solutions make it easy to deploy and manage a Kubernetes cluster privately within your organization. You must have a few Virtual Machines with supported configurations in place These are a few of the many Kubernetes certified solution.
- Google Container Engine
- Openshift Online
- Azure Kubernetes Service
- Amazon Elastic Container Service for Kubernetes (EKS)