Rancher与Kubernetes有何不同?

67

我一直在思考Rancher(或DC/OS)与Kubernetes的区别。它们都声称是容器管理工具,为什么我们需要两者?它们有何不同之处?


2
使用Rancher部署Kubernetes集群是一种简单快捷的方式,即使您对Kubernetes一无所知。但是,我建议首先通过源代码部署Kubernetes集群,然后您可以了解其工作原理。 - CHENJIAN
3个回答

59

作者注

这个问题最初是3年前发布的。此后技术发展已经有所变化。

例如,DCOS背后的公司Mesosphere已经更名,并将重点放在了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并利用你提到的本地集成优势。

虽然我很固定在Kubernetes上,但必须承认,Rancher还允许轻松安装其他框架(Swarm和Mesos)。 我建议尝试一下它,即使只是为了了解为什么不需要它。


更新 2017-10-11

Rancher宣布了Rancher 2.0的预览版。新版本将作为管理员UI和一组额外服务,旨在部署在Kubernetes之上。

7
没问题,但 Rancher 具体相对原生 Kubernetes 有什么优势呢?Kubernetes 在 AWS/GCP 等云平台上支持负载均衡和“网络”,例如在 AWS 上,它会自动为 LoadBalancer 类型的服务提供 ELB 的配置和设置。 - jdc0589
1
Rancher编排安装和管理Kubernetes。Rancher之所以这样做,是因为安装和配置k8s很困难(复杂)。如果您的目标是了解如何管理k8s或使用它们的代码,那么您可能会欢迎这一挑战(好!),但如果您是容器化应用程序的开发人员,并且只想使用k8s,那么不必要的挑战将超出范围并阻碍您的目标(坏!)。 - Scott Prive
1
自从这个问题被提出以来,大多数云服务提供商现在都有托管Kubernetes的服务。我也完全赞成为开发人员推荐这种方式。另一方面,Rancher似乎正在将自己定位为专门用于本地或混合云安装Kubernetes等特定用例的解决方案。 - Mark O'Connor

30

Rancher 2.0 是一个开源产品,能够简化 Kubernetes 部署和管理的过程。无论 Kubernetes 运行在何处,此产品都可以解决 Kubernetes 用户的三个主要问题:

  1. RKE 是部署和升级 Kubernetes 的 Kubernetes 发行版和安装程序,可以独立于 Rancher 使用。类似于 kops、kubespray 等工具,RKE 让 Kubernetes 部署和升级变得非常容易。

  2. Rancher 2.0 是一个多集群管理工具,可用于管理 Kubernetes 集群。无论您是使用 RKE 创建集群、拥有现有 Kubernetes 集群,还是使用托管 Kubernetes 集群(如 GKE、EKS 或 AKS),Rancher 都能集中管理这些集群。它特别解决了用户管理和 RBAC、安全策略管理、容量管理、委派管理、集群备份和恢复、日志和监控等问题。

  3. Rancher 是团队使用 Kubernetes 的用户界面。它为用户提供与其访问权限下的 Kubernetes 集群交互的 UI 和 API。用户也可以直接使用 KubeCTL。此层提供了集成工具,使使用 Kubernetes 变得非常容易,包括集成日志管理、CI / CD、警报等。Helm 很好地集成了进来,使得共享模板非常容易。即将推出的版本还将集成 Istio 和 Prometheus。

所有这些都作为单一平台交付,因此您可以轻松地从Rancher的一个版本移动到另一个版本并升级组件。
希望这有所帮助。您可以在github.com/rancher/rancher了解更多信息。

3
此外,这里还有一个“Rancher为Kubernetes添加了什么”的页面:https://rancher.com/what-is-rancher/what-rancher-adds-to-kubernetes/。 - Shannon Williams

3
简单来说:
Rancher是Kubernetes的一个发行版(或封装),并具有一些其他功能(请参见上面的答案),它提供了一个Web界面,提供大部分功能。
Rancher有自己的路线图,这意味着它不会立即更新,适应Kubernetes的发布,并且您将更晚地获得Kubernetes的新功能和错误修复。越多的新功能意味着越复杂,离Kubernetes主线越远。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接