Kubernetes usage is on the rise and for good reason. What is Kubernetes? A quick Google search reveals it’s an orchestration platform that allows you to deploy, scale and manage containerized applications on clusters of servers. However, if you dig a bit deeper you’ll uncover that Kubernetes was originally designed after another cluster-management system, created by Google, named Borg.
Why use container orchestration? And what makes Kubernetes so special?
Docker has prevailed as the leader in application containerization. It’s nothing to spin up a Docker based proof of concept on your localhost, however, with every new breakthrough there are always new issues to consider: How will you be able to deploy, scale, upgrade and monitor thousands of containers over clustered servers?
At face value, Kubernetes may appear to be an overnight solution to container orchestration but this is far from the truth. Almost everything at Google runs in a container and Google has been managing containerized workloads in production for years, which means that Google’s Borg software has been updated and refactored over time to fix real-world high availability issues that occur during deployment. Kubernetes benefits from this because many of the Google developers who originally contributed to the Borg project helped create Kubernetes. It has now become an opensource version of Borg with improved features that help to correct old cluster management issues along with increased support from IBM, Cisco and Redhat.
What does all this mean and why is it important?
It means that when used effectively Kubernetes has the potential to take a custom application that was previously difficult to release and break it down into containerized pieces that are easier to deploy, upgrade and monitor across your clustered servers. The magic that makes Kubernetes so usable is its ability schedule deployment tasks across multiple servers while allowing DevOps teams to break down complex applications across less complex more predictable systems.
What’s the best way to get started using Kubernetes for local development?
Minikube had been the go-to development tool for Developers, DevOps and IT Operations for some time now. However, all that changed when Docker integrated “Kubernetes for Docker” alongside Docker Swarm last summer.
If you’re looking to get started as soon as possible, download Docker-Desktop. It’s available for both MacOS & Windows and It will automatically enable Hyper-v as a prerequisite on a Windows 10 machine. Once installed it will allow Kubernetes to simply be enabled via a Docker settings option which will then spin-up your very own cluster within Docker.
Note: In order to use Docker in Windows 10 you must enable virtualization on your PC’s BIOS. To check if its enabled open your Task Manager > click on the performance tab & select CPU.
Ok, I’ve enabled Kubernetes in Docker now what?
Now that the cluster has been installed in Docker we’ll need to Install the Kubernetes cli tools in order to interact with it. On MacOS we can install this by installing homebrew and using the command: brew install kubernetes-cli.
On Windows 10, download and install the Chocolatey package manager, then use the command: choco install kubernetes-cli to install the tools.
Once the tools have been installed you can open a Terminal or PowerShell command prompt and type: kubectl to view all the basic to advanced commands that Kubernetes has to offer.
Looking for a way use a real-time dashboard to view what’s happening in your Kubernetes cluster? Download and install a desktop App named kubernetic. Once it’s installed change your Kubernetes namespace to kube-system.
What came up in your dashboard? The numbers for all of your Kubernetes objects should have updated themselves. This happened because when you were in the default namespace nothing had been manually deployed so there was nothing to monitor. When you changed over to the kube-system namespace you’re navigated into the heart of the Docker-for-desktop Kubernetes cluster.
Click on Pods and you’ll see six running Kubernetes pods that make up the entire cluster.
Click on one of the pods and select </>View and a YAML editor will appear that will display the Pod’s configuration file.
Kubernetes is an amazing cluster-management tool and hopefully, this article was able to shed some light on where it came from what it’s used for and how to get started. Would you prefer to not run a kubernetes cluster on your machine? Are you hesitant to make any changes to your PC’s BIOS? If so, katacoda has free self-paced interactive learning that covers a wide range of Docker and Kubernetes topics. Where to next?
Latest posts by Christopher Bomar
- It is Finally Time to Take a Look at Kubernetes - March 11, 2019