经过数月的努力,我们终于发布了Rancher 2.0 Technology Preview,这对Rancher Labs而言也是历史性的、值得铭记的一刻。
Rancher 1.x容器管理平台一直为市场和用户所喜爱,自2016年3月Rancher 1.0发布以来,Rancher server和Rancher agent的下载量达到了6000多万次。全球范围内Rancher的部署节点已超过10000个,付费客户超过100个。几乎每天都有用户和客户告诉我们,Rancher让他们在生产中运行Docker和Kubernetes变得容易。我们深感感谢,是用户们的激励让Rancher软件变得更好。我还要特别感谢我们的客户,感谢他们对Rancher软件的持续发展提供了资金上的支持!
Rancher 1.0中有一个易于使用的容器编排框架,称为Cattle。且Rancher1.0支持所有主流的容器编排框架,包括Swarm、Mesos和Kubernetes。一个容器管理平台,多个编排框架供其选择,这是Rancher用户一直喜欢Rancher的原因之一。
然而,去年Kubernetes的增长远远高于其他编排引擎。Rancher用户希望在Kubernetes之上得到更好的用户体验和更多的功能。因此,我们决定重新设计Rancher 2.0,将过去大受用户欢迎的Rancher用户体验(即Cattle)架构于Kubernetes之上,从而充分利用Kubernetes的强大力量。
在Rancher 2.0中:
- Cattle用户依然可以享受和以前一样的易于使用的用户体验,还可以额外地利用Kubernetes编排引擎的优势,包括其丰富的基础设施插件、增强的RBAC功能和原生生态系统服务。
- Kubernetes用户可以享受独有的Rancher用户体验和Rancher应用服务目录。
我们的Kubernetes之旅
2015年,当我们刚开始在Rancher中纳入对Kubernetes的支持时,那时的Kubernetes用户面临的最大挑战就是如何安装和配置Kubernetes集群。那时候,Kubernetes自己的脚本和工具很难使用,而且不可靠。但在Rancher中,Kubernetes集群的设置只需一键即可完成。更重要的是,Rancher允许您在任何基础架构上设置Kubernetes集群,包括公有云、vSphere集群和裸机服务器。因此,Rancher很快成为启动Kubernetes集群的最受欢迎的方式之一。
在2016年初,市场上已经有许多现成的和第三方的Kubernetes安装程序。我们的问题不再是如何安装和配置Kubernetes,而是如何持续地运行和升级Kubernetes集群。我们在Rancher中构建了很多功能,用户可以很容易地操作和升级Kubernetes集群及其etcd数据库。
到2016年底,我们开始注意到,Kubernetes运营软件的价值正在迅速下降,这一趋势的出现有两个因素。首先,诸如Kubernetes Operations(kops)等开源工具已经成熟,许多机构与企业能够轻松地在AWS上运行Kubernetes。第二,Kubernetes-as-a-Service(Kubernetes即服务)开始受欢迎。例如,Google Cloud客户不再需要配置和操作自己的集群。他们可以依靠Google——Kubernetes技术的发明者,为他们运行Kubernetes。
KUBERNETES EVERYWHERE
2016年初,Google Kubernetes项目的创始人、后来创立了Kubernetes公司Heptio的Joe Beda,曾跟我谈及他的“Kubernetes Everywhere”的愿景,他希望Kubernetes可以和无处不在的IaaS相抗衡。
2017年,Kubernetes的流行度在持续上升,且这一势头从未放缓。我们有理由相信在不远的未来,所有基础设施供应商都将提供Kubernetes-as-a-Service。那一天到来的时候,Kubernetes将成为通用的基础设施标准。DevOps团队将不再需要自己操作Kubernetes集群。而唯一剩下的挑战将是如何简单而统一地管理和利用各基础设施上的Kubernetes集群。
基于Kubernetes的Rancher2.0平台
Rancher2.0是一个基于Kubernetes的成熟的容器管理平台。下图展示了Rancher拥有的功能。
与Rancher1.0不同,Rancher server2.0包含了一个嵌入式的Kubernetes主机。这意味着一旦你开始使用Rancher,比如执行命令
docker run -d -p 8080:8080 rancher/server
马上就有一个Kubernetes集群供你启动和执行,无需再为创建Kubernetes做更多的操作。在这之后,每一个添加的主机都会自动安装Kubelet,并成为Kubernetes集群的一部分。
你可以使用相同的嵌入式Kubernetes主机来创建额外的集群。我们已经建立了一个定制的多租户Kubernetes API服务器,它能够最大限度地减少多个Kubernetes集群所需的资源。
我们认为Kubernetes-as-a-service在未来会成为常态,会越来越少使用嵌入式Kubernetes主机。Rancher2.0能够支持导入和管理由云服务商(例如Google容器引擎GKE))控制的Kubernetes集群,当然还有使用其他工具(如kops)建立的Kubernetes集群。
对多个集群的单点控制和可视化
IT管理员可以使用嵌入式的Kubernetes主机创建几个Kubernetes集群,或者导入几个现有的Kubernetes集群,然后使用Rancher作为对多个集群的单点控制和管理平台。
我们举一个例子来说明IT管理员是如何在Rancher中使用centralized RBAC和认证功能的。想象一下,如果企业直接使用Google Container Engine(GKE)作为部署容器应用的标准平台,而GKE却要求每个用户都需要有Google账户,这显然不是大多企业的标准做法。通过Rancher,IT管理员可以使用单一的服务账户将GKE集群导入Rancher,然后就能够用企业现有的ActiveDirectory凭证对其他用户进行身份验证。
全新的UI
很多用户告诉我们,他们非常喜欢Rancher的UI。在2.0版本我们做得更加美观了!我们自己也很喜欢它的设计,并且也希望把它做得更棒。在默认设置下,2.0的UI提供一个简单的容器视图,对容器只有初步了解的人都可以很轻松地开始使用Kubernetes。高级用户他们仍然可以访问Kubectl和Kubernetes dashboard。其次,Rancher应用服务目录Catalog的使用体验进一步优化,通过简单的鼠标点击不仅可以部署应用程序,还可以在部署后轻松地访问和管理应用。Rancher2.0的UI扩展了更多的容器、服务和主机,并且保持了高度响应,如果你喜欢Rancher 1.X的UI,那么你一定会更喜欢2.0。
未来,还有更多......
我们现在发布的是一个早期的技术预览,我们现在仍有很多未完成的工作,目前还在忙于修复bug并添加诸如HA部署、RBAC和身份认证、集成CI/CD、监控和日志等等这些特性。我们将会持续发布新的版本,敬请关注,也请一如既往地给我们更多反馈与意见,让我们可以做得更好!