bluebay2014 - Fotolia

Kubernetes vs. Rancher: The differences all devs should know

How are Kubernetes and Rancher related? Here are the basics developers need to know about Kubernetes and Rancher and how they can ultimately work together.

Many developers who are new to cloud-native development aren't sure of the difference between Kubernetes and Rancher. Do they need to choose one over the other? The truth is the two technologies are complementary -- not competitive -- and actual intersections between Kubernetes and Rancher are few and far between.

Kubernetes is a container orchestration technology. And Rancher is a technology for managing Kubernetes clusters. Let's explore this difference.

Kubernetes overview

Kubernetes is a container orchestration technology created by Google as the Borg project. Google donated Kubernetes to the Cloud Native Computing Foundation, where it resides today.

Kubernetes is a framework that allows a distributed application to run Docker containers on many virtual or physical computers in a controlled manner.

The basic organizational unit in Kubernetes is the cluster. A cluster will consist of a number of physical or virtual machines. A Kubernetes cluster will have its own set of users, administrators, namespaces, storage resources and security settings. The cluster is the entity in which your distributed microservices-based applications will run.

Rancher and Kubernetes clusters

Rancher is a technology for organizing and managing a number of Kubernetes clusters, as seen in the illustration below.

Rancher and Kubernetes clusters
Figure 1. Rancher and Kubernetes are complementary technologies for cluster management at scale.

It's not unusual for a company to run a host of Kubernetes clusters. And each cluster will have special configuration and access-control settings.

For example, one cluster might be accessible only to the accounting department, while another might be dedicated to the manufacturing department. When a company is managing only a handful of clusters, configuring access to a cluster can be done manually. But if a larger enterprise has hundreds of Kubernetes clusters, this requires a more streamlined approach to cluster management.

This is where Rancher comes into play. With its management UI, users can make broad changes to a cluster or a group of clusters from a central location.

Kubernetes cluster
Figure 2. A Kubernetes cluster consists of many virtual or real machines.

For example, imagine that an employee has left your company and you need to revoke that employee's access to a particular cluster. One way to do it is through manual manipulation of the Kubernetes cluster. Manual manipulation is reasonable if the departed employee's access permissions apply to only a single cluster. If the employee has access to 10 clusters, an admin needs to fiddle with 10 clusters.

However, the admin could instead use Rancher to remove the user from all relevant clusters at once. Not only will the administrative process take less time, it will also be done with greater accuracy. Human intervention always runs the risk of causing human error. Rancher reduces the risk of human error.

The difference between Kubernetes and Rancher is that Kubernetes is a technology for managing containers organized under a cluster of virtual or physical machines. Rancher is a technology for managing Kubernetes clusters en masse. Both of these tools are important considerations for any organization building a cloud-native, DevOps technology stack.

Dig Deeper on Core Java APIs and programming techniques

App Architecture
Software Quality
Cloud Computing