According to Rancher's website, Rancher is a complete software stack for teams adopting containers. It addresses the challenges of managing multiple Kubernetes clusters providing integrated tools for running containerized workloads.
What does all of this mean?
- Kubernetes is a platform to orchestrate, manage and deploy containers
- Rancher is a platform to orchestrate, manage and deploy Kubernetes clusters
A little bit of History
Rancher was built by Rancher Labs and acquired by SUSE in 2020. It is an open-source project so, even though it's a product of Rancher Labs, we don't have to worry about fees or licenses to use it.Why is it called Rancher? - In the cloud, servers are cattle, not pets. And when you have cattle, you need a Rancher to take care of your herds.
Rancher Labs is not only Rancher, it provides a suite of products for Kubernetes, such as:
- Rancher Kubernetes Engine (RKE)
- K3s
- Longhorn
Why would you use Rancher?
- Multiple K8s clusters management - The main advantage of Rancher is that it can manage K8s clusters in all major cloud providers, as well as in your own data centers. It can even manage clusters running on Internet of Things devices.
- Rancher supports the K8s distributions approved by the Cloud Native Computing Foundation (CNCF). Meeting the CNCF specifications means that Rancher can support most Kubernetes products and projects.
- Integration with major cloud providers (AWS, Azure and GCP) - Rancher can interact directly with these cloud providers via their API to create and manage EKS, AKS and GKE clusters.
Use cases - When to use Rancher?
- K8s clusters management for Large Organizations - Rancher can help those organizations to operate multiple K8s clusters under a central shared services team.
- Rancher allows organizations to have separate clusters for different application teams.
- Rancher's CI/CD tools can manage git-based workflows and deployments to multiple clusters from a single centralized management console.
- Rancher allows organizations with a mix of K8s clusters in the cloud and on-prem to manage all of them from a single place and following the same governance and operational standards.
- Rancher helps us to standardize the way we secure all the K8s clusters in our organization.
- Rancher provides organizations with a way to manage clusters on Edge-based devices such as IoT devices or clusters at edge locations.
Rancher's Features
- Rancher's Clustet Explorer - a GUI to manage all K8s clusters and objects as well as utilization metrics. From here, we can see from a single place:
- all our K8s clusters
- All the objects on each cluster - deployments, services, namespaces, pods...
- Continuous Delivery - Rancher can connect to your git repositories and create automated builds and deployments to the corresponding clusters.
- Rancher's Marketplace - This is a catalog of Helm charts that can be used to simplify deployments like Prometheus, NGINX or Longhorn. We can even create our own catalog of charts to be used in our organization's clusters.
- Security - Rancher provides security mechanisms, such as RBAC controls, Pod security policies and integration with 3rd party Identity providers like Active Directory, Okta or Github for better control of your clusters. This helps us as well to have standard security procedures and compliance controls to secure our clusters
Rancher Kubernetes Engine (RKE)
RKE is a CNCF-certified K8s distribution. It runs entirely in Docker containers. Wherever you can install and run Docker you can use RKE on that. This means it does not rely on any specific operating system or cloud provider, all we need is Docker.With that, it solves the problem of vendor lock-in. Even though K8s is an open-source project, K8s distros differ from one cloud provider K8s service to another. This makes migrations between cloud providers not easy.
RKE provides a level of abstraction and makes our K8s clusters to be portable across cloud providers. It makes it even possible to create K8s clusters with nodes on different cloud providers.
What's the difference between RKE and Kubernetes?
- RKE runs K8s in docker containers, so it's fully installed on docker as opposed to installing K8s components manually, which can be a lot harder.
- We can think of RKE as a wrapper around K8s to make its installation and operation easier.
- RKE simplifies and automates the installation and operations of K8s.
- So, to make it clear:
- K8s is the platform to orchestrate and manage containers
- RKE is a solution that installs K8s in Docker containers. So, RKE is not orchestrating/managing container (that's K8s), it orchestrates/manages K8s clusters