Kubernetes vs Docker - Comparing The Orchestration Giants

Awanish
Edureka
Published in
5 min readDec 18, 2017
Kubernetes vs Docker - Edureka

Kubernetes and Docker Swarm are leading container orchestration tools today. So before using them in your prod, you should know what exactly they are and how they work. To understand the very same, read this blog which talks about the performance and usability face-off between Kubernetes vs Docker Swarm.

The differences between Kubernetes vs Docker Swarm are briefly summarized in the below table. A detailed explanation is provided later in the blog.

Differences Between Kubernetes & Docker Swarm - Kubernetes vs Docker Swarm

Kubernetes vs Docker Swarm

I would also like to remind you that, people misunderstand Docker Swarm for Docker. Docker is just a containerization platform. Docker Swarm is a container orchestration platform, the same as Kubernetes. Hence, its only right to compare the two on the same set of parameters. The parameters I will be comparing them against are:

  • Installation & Cluster configuration
  • GUI
  • Scalability
  • Auto-Scaling
  • Load Balancing
  • Rolling Updates & Rollbacks
  • Data Volumes
  • Logging & Monitoring

Installation & Cluster configuration

Setting up a cluster with Docker Swarm can be done with a snap of your fingers. Only 2 commands need to be executed. One at the Manager’s end and another at the Worker’s end. Literally, that’s all it takes. After that, you can straight away commence your deployment.

However, with Kubernetes, the setup is nowhere as easy as Swarm. You need to run commands to bring up the cluster, then to define your environment, then to define a Pod network (for containers to interact), then to bring up the dashboard, and then finally the cluster would be hosted.

GUI (Kubernetes Dashboard)

A GUI is basically a Dashboard, which can be used to control your cluster effortlessly. No CLI commands hassle, no technical efforts, and simple-English which even professionals from the non-technical background can cope with. You can get all this with the Kubernetes dashboard at: localhost:8001.

Kubernetes Dashboard - Kubernetes vs Docker Swarm

However, Docker Swarm replies saying, “Sorry, we have no such facility now“. Yes, there is no Dashboard! Which is an upset? But hey, pundits would defend it by saying, if you are dealing with Containers, then you are technical enough to deal without a GUI. And, this is also partially true.

Scalability

Scalability of Containers - Kubernetes vs Docker Swarm

Scaling up the number of containers is an eventual need for simply any company. There’s no exception there. And, here both Kubernetes and Swarm hold a firm stand. Neither wins. Kubernetes is slightly better at maintaining the Cluster strength, whereas Swarm is slightly faster at scaling up(5x faster than K8s).

My take on this point is, cluster strength is more important than anything. In Prod, I would rather ensure more stability than agility in scaling. Hence, Kubernetes is my winner.

Auto-Scaling

Auto-scaling feature - Kubernetes vs Docker Swarm

The clear winner is Kubernetes. That is because, K8s are intelligent enough to analyze your server load, and scale up or down as per the requirement. There is no need for manual intervention. This is a big help because the famous “traffic catastrophe” can be completely avoided.

But Docker Swarm is not the confident defender here. When traffic pours, it crumbles, with no help available. And manual intervention is the only way out (no support for auto-scaling).

Load Balancing

Representation of Load Balancing Kubernetes vs Docker Swarm

Kubernetes is beaten here. At times, you need to manually configure your load balancing settings. Multiple containers are served as 1 Pod. And each service can be defined as a group of Pods. Now, the challenge is to get these Pods to talk to each other as they should be easily discoverable. Since the services are used for discovery, and not their IP addresses, hence the challenge.

Load balancing is simple with Swarm because Swarm does auto load-balancing. There is no concept of Pods, and hence all the containers discover each other with a network IP address, which happens automatically as long as the nodes are connected to the cluster.

Rolling Updates & Rollbacks

Kubernetes wins here again. In fact, both K8s and Swarm clusters support the concept of ‘Rolling Updates’ to containers. k8s perform rolling updates to Pods as a whole, while Swarm does it to containers straightaway. Rolling updates is the process of progressively and gradually deploying the updates to existing apps in all containers.

But Swarm is beaten because it does not do automatically Rollbacks. Whenever something goes wrong while deploying your updates, both K8s and Swarm provide an option to Rollback to the previous stable deployment. But, only Kubernetes does auto Rollback in case of a failure condition. The Master of the cluster closely monitors the updates and deployments.

Data Volumes

Kubernetes allows us to share storage volumes between multiple containers inside the same Pod. However, Docker Swarm allows us to share storage volumes with any other container. But the advantage with K8s is that the storage can be easily mounted on local storage, or either on public clouds like AWS, GCP or even on shared networks like NFS.

Logging & Monitoring

Kubernetes provides inbuilt tools for logging and monitoring. Logging helps in quickly analyzing the logs and understanding where the problem lies in case of a failure. Monitoring helps the Master to constantly be aware of the health status of nodes and the services containerized by them. Kubernetes does in-built logging and monitoring. However, with Swarm, we can use 3rd party tools like ELK for this.

So, these are the relevant parameters you have to keep in mind before choosing one between, Kubernetes vs Docker Swarm.

This brings an end to this article on Kubernetes vs Docker Swarm. If you wish to check out more articles on the market’s most trending technologies like Artificial Intelligence, Python, Ethical Hacking, then you can refer to Edureka’s official site.

Do look out for other articles in this series which will explain the various other aspects of Kubernetes.

1. What is Kubernetes?

2. Install Kubernetes On Ubuntu

3. Kubernetes Tutorial

4. Kubernetes Dashboard Installation & Views

5. Kubernetes Architecture

6. Kubernetes Networking

7. Kubernetes Interview Questions

8. Building a Kubernetes App with Amazon EKS

9. Set Kubernetes Ingress Controller on AWS

10. How To Visualize Kubernetes Cluster with Elasticsearch and Kibana

Originally published at www.edureka.co on December 18, 2017.

--

--

Awanish
Edureka

Awanish is currently working as the Associate Vice President - Marketing, he has extensive experience in course development & content marketing.