How is rancher different from Kubernetes

Rancher 2.0 is now GA and it is an open source product that simplifies how you deploy and manage Kubernetes wherever it is running. It solves three primary issues for Kubernetes users:

  1. It is a Kubernetes distribution and an installer that makes deploying and upgrading Kubernetes very easy. Kind of like kops, kubespray, etc. This piece is called RKE, and can be used independently of Rancher.

  2. Rancher 2.0 is a multi-cluster management tool for administering Kubernetes clusters. Whether you created your cluster with RKE, have an existing Kubernetes cluster, or are using a hosted kubernetes cluster like GKE, EKS or AKS, Rancher can centrally manage all of these clusters. Specifically, it addresses user management and RBAC, security policy manaagement, capacity management, delegated administration, cluster backup and recovery, logging and monitoring, etc.

  3. Rancher is a user interface for teams that use Kubernetes. Rancher provides a UI and API and for users to interface with the Kubernetes clusters they are given access to. Users can also just use KubeCTL. This layer provides integrated tooling that makes using Kubernetes quite easy, including integrated log management, CI/CD, alerting, etc. Helm is well integrated and makes it easy to share templates. Upcoming releases are integrating Istio and Prometheus as well.

All of this is delivered as a single platform, so you can move from version to version of Rancher and upgrade components easily.

I hope that helps. You can learn more at github.com/rancher/rancher


Long story short:

Rancher is a Distro ( or Encapsulation ) over Kubernetes and has some more features (see answers above), it offers a Web UI that provides most of its functionality.

Rancher has its own roadmap, which means it will NOT update as soon as Kubernetes releases, and you'll obtain the new features and bug fixes of kubernetes a lot more later. The more new features means the more complex and the more > deviation from the main line of Kubernetes.


Author's note

This question was originally posted 3 years ago. Since then the technology landscape has moved on.

For example Mesosphere, the company behind DCOS has renamed itself and refocused it's efforts on Kubernetes. Similarily Rancher positioned itself as a Kubernetes installation and management layer.

If this issue is still a puzzle I'd suggest posing new question.


Original answer

Rancher is a neat tool that is best described as a deployment tool for Kubernetes that additionally has integrated itself to provide networking and load balancing support.

Rancher initially created it's own framework, called Cattle, to coordinate docker containers across multiple hosts. At that time Docker was limited to running on a single host. Rancher offered an interesting solution to this problem by providing networking between hosts, something that was eventually to become part of Docker Swarm.

Now Rancher enables users to deploy a choice of Cattle, Docker Swarm, Apache Mesos (upstream project for DCOS) or Kubernetes to manage your containers.


Response to jdc0589

You're quite correct. To the container user Kubernetes abstracts away the underlying implementation details of compute, networking and storage. It's in the setup of this underlying detail where Rancher helps. Rancher's networking provides a consistent solution across a variety of platforms. I have found it particularly useful when running on bare metal or standard (non cloud) virtual servers.

If you're only using AWS, I would use kops and take advantage the native integration you've mentioned.

While I'm k8s fixated, it must be acknowledged that Rancher also allows the easy install of other frameworks (Swarm and Mesos). I recommend trying it out, if only to understand why you don't need it.

  • http://docs.rancher.com/rancher/v1.5/en/quick-start-guide/
  • http://docs.rancher.com/rancher/v1.5/en/kubernetes/

Update 2017-10-11

Rancher have announced a preview of Rancher 2.0. The new answer to your question is that soon Rancher will be an admin UI and set of additional services designed to be deployed on top of Kubernetes.