rancher 与 Kubernetes 有何不同

Posted

技术标签:

【中文标题】rancher 与 Kubernetes 有何不同【英文标题】:How is rancher different from Kubernetes 【发布时间】:2017-01-29 04:46:58 【问题描述】:

我一直试图弄清楚 Rancher(或 DC/OS)与 Kubernetes 的不同之处。他们都说他们是容器管理工具。为什么我们两者都需要?它们有何不同?

【问题讨论】:

使用rancher部署kubernetes集群是一种简单快捷的方式,即使你对kubernetes一无所知。但是,我建议先通过源码部署kubernetes集群,然后你就可以知道它是如何工作的了。 【参考方案1】:

作者注

这个问题最初是在 3 年前发布的。从那时起,技术领域不断发展。

例如 Mesosphere,DCOS 背后的公司有renamed itself and refocused it's efforts on Kubernetes。同样,Rancher 将自己定位为 Kubernetes 安装和管理层。

如果这个问题仍然是一个难题,我建议提出新问题。


原答案

Rancher 是一个简洁的工具,最好将其描述为 Kubernetes 的部署工具,它还集成了自身以提供网络和负载平衡支持。

Rancher 最初创建了自己的框架,称为 Cattle,用于跨多个主机协调 docker 容器。当时 Docker 仅限于在单个主机上运行。 Rancher 通过提供主机之间的网络为这个问题提供了一个有趣的解决方案,这最终成为了 Docker Swarm 的一部分。

现在 Rancher 让用户可以选择部署 Cattle、Docker Swarm、Apache Mesos(DCOS 的上游项目)或 Kubernetes 来管理您的容器。


回复jdc0589

你说的很对。对于容器用户,Kubernetes 抽象出计算、网络和存储的底层实现细节。 Rancher 在这个底层细节的设置中提供了帮助。 Rancher 的网络提供了跨各种平台的一致解决方案。我发现它在裸机或标准(非云)虚拟服务器上运行时特别有用。

如果您只使用 AWS,我会使用 kops 并利用您提到的本机集成。

虽然我很喜欢 k8s,但必须承认 Rancher 还允许轻松安装其他框架(Swarm 和 Mesos)。我建议尝试一下,如果只是为了了解你为什么不需要它。

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

2017 年 10 月 11 日更新

Rancher 宣布了Rancher 2.0 的预览版。您的问题的新答案是,很快 Rancher 将成为一个管理 UI 和一组旨在部署在 Kubernetes 之上的附加服务。

【讨论】:

是的,但是 Rancher 为 vanilla Kubernetes 带来了什么特别的东西? k8s 支持负载均衡和“网络”,尤其是在 AWS/GCP/etc 上托管时(即:在 aws 上,它将自动为具有 LoadBalancer 类型的服务预置和配置 ELB) TL;DR - Rancher 协调 Kubernetes 的安装和管理。 Rancher 这样做是因为安装和配置 k8s 很困难(嗯,很复杂)。如果您的目标是了解如何管理 k8s 或使用他们的代码,那么您可能会欢迎挑战(很好!),但如果您是容器化应用程序的开发人员并且您只是想使用 k8s,那么不需要的挑战超出了范围,并且阻碍你的目标(糟糕!)。 @ScottPrive 自从提出这个问题以来,大多数云提供商现在都有托管的 Kubernetes 产品。我也完全赞同向开发人员推荐这条路线。另一方面,Rancher 似乎将自己定位于利基用例,例如 Kubernetes 的本地或混合云安装。【参考方案2】:

Rancher 2.0 现已正式发布,它是一个开源产品,可简化您在任何运行的地方部署和管理 Kubernetes 的方式。它为 Kubernetes 用户解决了三个主要问题:

    它是一个 Kubernetes 发行版和一个安装程序,使部署和升级 Kubernetes 变得非常容易。有点像 kops、kubespray 等。这块叫做 RKE,可以独立于 Rancher 使用。

    Rancher 2.0 是一个用于管理 Kubernetes 集群的多集群管理工具。无论您是使用 RKE 创建集群、拥有现有的 Kubernetes 集群,还是使用 GKE、EKS 或 AKS 等托管 kubernetes 集群,Rancher 都可以集中管理所有这些集群。具体来说,它涉及用户管理和 RBAC、安全策略管理、容量管理、委托管理、集群备份和恢复、日志记录和监控等。

    Rancher 是使用 Kubernetes 的团队的用户界面。 Rancher 提供了一个 UI 和 API,供用户与他们有权访问的 Kubernetes 集群进行交互。用户也可以只使用 KubeCTL。该层提供了集成工具,使使用 Kubernetes 变得非常容易,包括集成日志管理、CI/CD、警报等。Helm 集成良好,可以轻松共享模板。即将发布的版本还将集成 Istio 和 Prometheus。

所有这些都是作为单一平台交付的,因此您可以在 Rancher 的版本之间移动并轻松升级组件。

我希望这会有所帮助。您可以在 github.com/rancher/rancher 了解更多信息

【讨论】:

另外 - 这里有一个“Rancher 添加到 Kubernetes 的内容”页面:rancher.com/what-is-rancher/what-rancher-adds-to-kubernetes【参考方案3】:

长话短说:

Rancher 是一个基于 Kubernetes 的发行版(或封装),并且有一些 更多功能(请参阅上面的答案),它提供了一个提供大部分功能的 Web UI。

Rancher 有自己的路线图,这意味着它不会尽快更新 随着 Kubernetes 的发布,您将获得新功能和错误修复 Kubernetes 的更多内容。新功能越多,意味着越复杂,也越偏离 Kubernetes 的主线。

【讨论】:

以上是关于rancher 与 Kubernetes 有何不同的主要内容,如果未能解决你的问题,请参考以下文章

秒搭Kubernetes之使用Rancher

使用Rancher 2.0管理Kubernetes工作负载

Rancher 开源 Rio,整合 IstioKnative 与 Kubernetes 能力

Ubuntu与Rancher联合发布Kubernetes云原生平台

Rancher 2.3实现K8S一键式升级!再也不用同步升级Rancher啦!

从Rancher 1.6到2.0:术语及概念变化对比