Save to My DOJO
Welcome back for another segment of our ongoing Containers for MSPs series. We’ve covered a lot in this series. We’ve talked about Docker, Supported Container Platforms, Networking, Linux Containers on Windows and much more. Thus far we’ve focused almost entirely on Docker itself, and with good reason. Docker is the core engine behind running containers on most platforms! While we’ll continue to talk about Docker as this series progresses, I want to cover a topic that’s been a long way coming, and that is container orchestrators. Today’s post will serve as more of an informational introduction with some supporting links and information, and then we’ll get into the more practical how to type of articles in future segments.
However, before we get into that, let’s take a look at where we’ve been so far in this series.
The Definitive Guide to Containers for MSPs
Part 1 – What are Containers?
Part 3 – Introduction to Docker
Part 4 – 4 Pro Tips for Working with Docker
Part 7 – Docker Container Networking – Part 1
Part 8 – How to Setup a Linux Container Host
Part 11 – Docker Container Networking Part 2
What is a Container Orchestrator?
In short, a container orchestrator is a utility that is designed to easily manage complex containerization deployments across multiple container hosts and locations from one central location. This includes the containers themselves, the hosts, the networking, storage…etc…etc.
I suspect most of you reading this article have a working knowledge of either Hyper-V or VMware. Both of those technologies can be used as a coordinating example to a container orchestrator. In both Hyper-V and vSphere, you have a stand-alone host (Hyper-V Host, or ESXi Instance). You can run whatever VMs on those hosts that you want as long as you have the resources in which to run them. However, once those deployments got to be complex with the addition of several nodes you likely incorporated failover cluster manager or SCVMM with Hyper-V, or vCenter on the vSphere side. Those tools enabled easier, scalable management of more complex VM deployments across those various hosts.
This is the same thing that a container orchestrator does for container deployments.
List of Applicable Container Orchestrators
Now, I’ve been talking about container orchestrators for a bit here. Let’s talk about some of the big container orchestrators that are on the market today. I’ll leave the list to three for reasons that will become apparent.
Kubernetes – Built from some of the great minds at Google, and then open-sourced, Kubernetes is the undisputed king of container orchestrators. It’s the most widely accepted container orchestrator in the industry and has by far the most support. It’s unlikely you’ve been able to read ANY IT Pro news without at least hearing a small tidbit about it. If you’re looking to get started with container orchestration, this is the place to start, and future tutorials in this series will focus on this option.
Docker Swarm – There was a point in time where the industry was having a hard time decided whether Docker Swarm or if Kubernetes was going to be the industry-leading container orchestration tool. Docker Swarm is built by (you guessed it) Docker. You’d think that it would be the preferred option for most people as Docker is so ingrained in containerization technology, but that’s not the case. While you’ll still see swarm from time to time, and the tool is still present in Docker, you’re unlikely to see it as often as Kubernetes.
Mesos Marathon – The lesser known option but it’s still out there in some capacity. It’s a capable add-on for the Mesosphere DC/OS. However, I wouldn’t recommend it unless you have a compelling reason to take a look at it. Your time is likely better spent learning Kubernetes due to it’s commanding industry presence in this space.
What Does a Container Orchestrator Deployment Look Like?
As mentioned above you don’t really need this option until you have several container hosts in play. With Kubernetes in mind specifically, you basically have to have a multiple container hosts available in order to get the true benefits from it. According to the official Kubernetes documentation:
Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes allow you to deploy containerized applications to a cluster without tying them specifically to individual machines.
What does this type of deployment look like? First, it helps to understand some of the terminologies that Kubernetes uses. Let’s take a look at a few terms.
Master – The master is essentially in charge of managing the cluster. It takes care of things like application scheduling, maintenance, and scaling in addition to other management tasks.
Node – A Node is basically a worker machine in a Kubernetes cluster. Each node will container a container engine (such as docker) and will also container what’s called a Kubelet, which is just a fancy term for an agent. The Kubelet manages the node and communicates with the Kubernetes master.
Sometimes a picture is worth 1000 words, so let’s see what a logical view of a cluster would look like:
Image 1: Logical Layout of a Kubernetes Cluster
I can call back to the vSphere/Hyper-V example I used earlier in the article. Looks very similar to a virtualization cluster, doesn’t it? I think as we start moving through Kubernetes in upcoming segments you’ll continue to see that comparison quite frequently.
Now that you know what a container orchestrator is, and some introductory information regarding the particular orchestrator that we’re going to be using for this series, you’ll be prepared to actually do an installation of Kubernetes, which we’ll be doing next in the series.
Until then, I’d like to get your continued feedback. From an MSP perspective, what are your thoughts on containers? Do you see them being helpful in the MSP space? Are you supporting them for any customers currently? We’d love to know in the comments section below!
Thanks for reading!
Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!