65

I have been trying to wrap my head around how Rancher (or DC/OS) is different from Kubernetes. Both of them say they are Container management tools. Why we do we need both? How are they different?

sam
  • 1,230
  • 2
  • 11
  • 20
  • 2
    Deploying kubernetes cluster by using rancher is a easy and fast way, well even you know nothing about the kubernetes. BUT, I suggest to deploy kubernetes cluster by the source code first, and after that, you can know how it works. – CHENJIAN Jul 27 '17 at 04:17

3 Answers3

59

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.


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.

Mark O'Connor
  • 72,448
  • 10
  • 129
  • 174
  • 7
    right, but what specifically does rancher bring to the table over vanilla Kubernetes? k8s supports load balancing and "networking", expecially when hosted on AWS/GCP/etc (ie: on aws it will automatically provision and configure ELBs for services with a LoadBalancer type) – jdc0589 Mar 20 '17 at 23:17
  • TL;DR - Rancher orchestrates installation and management of Kubernetes. Rancher does this because installing and configuring k8s is difficult (well, complex). If your goal is to understand how to manage k8s or work with their code then you might welcome the challenge (good!), but if you are a developer of containerized apps and you simply want to USE k8s then unwanted challenges are out of scope and impediments to your goal (bad!). – Scott Prive Nov 11 '19 at 17:48
  • 1
    @ScottPrive Since this question was posed, most cloud providers now have a managed Kubernetes offering. I too would completely endorse recommending this route for Developers. Rancher, on the other hand, appears to be positioning itself for niche use cases like on-prem or hybrid cloud installations of Kubernetes. – Mark O'Connor Dec 03 '19 at 09:46
27

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

  • 3
    Also - there is a "what Rancher adds to Kubernetes" page here: https://rancher.com/what-is-rancher/what-rancher-adds-to-kubernetes/ – Shannon Williams Sep 07 '18 at 23:59
2

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.

sobolevn
  • 12,186
  • 6
  • 50
  • 52
NOZUONOHIGH
  • 1,084
  • 15
  • 17