Rancher是一个开源的容器管理平台,它在2018年推出了2.0版本,重新架构了其技术架构,专注于Kubernetes技术。Rancher最初是在2015年开始构建Kubernetes支持的,当时最大的挑战是如何安装和配置Kubernetes集群。现有的Kubernetes脚本和工具难以使用且不可靠。Rancher通过一键设置轻松地搭建了Kubernetes集群。不仅于此,Rancher还允许用户在任何基础设施上设置Kubernetes集群。
Rancher 2.0相较于1.0版本,主要的改变是移除了Swarm、Mesos等容器编排框架的支持,专注于Kubernetes。Rancher 2.0的架构基于Kubernetes构建,使用了自己开发的RKE(Rancher Kubernetes Engine)来提供统一的集群管理。RKE是一个用于部署和管理Kubernetes的简单、可移植的工具,它无需依赖云提供商的特定功能。
Rancher 2.0的高阶架构主要由以下几个组件组成:
1. Rancher API服务器:是Rancher的核心组件,负责处理用户请求,提供RESTful API接口。
2. 集群控制器和代理:负责与实际的Kubernetes集群交互,实现了统一的集群管理。
3. 认证代理:用于用户的认证和授权。
在用户和群组管理方面,Rancher提供了项目(Projects)和角色管理(Role management),允许以最小权限进行精细控制。Rancher还支持多种认证提供者,例如LDAP、Active Directory和外部的OAuth认证等,实现跨集群管理。
在可升级性和可扩展性方面,Rancher 2.0支持高可用性配置(High Availability),并提供了对于Kubernetes集群以及Rancher Server自身的扩展性设计。
Rancher API v3/Cluster对象的实现步骤包括定义对象、生成模式/控制器接口,添加自定义逻辑到API验证,以及使用自定义控制器定义对象管理逻辑。Rancher 2.0的架构设计还涉及对象生命周期管理、通用控制器以及对象条件管理等多个方面。
从Rancher的发展历程来看,它从一个支持多种容器编排框架的平台转变为专注于Kubernetes的容器管理平台。Rancher 2.0的发布,适应了Kubernetes快速发展的趋势,并通过RKE和自定义控制器的使用,进一步加强了对Kubernetes集群的管理能力。Rancher 2.0的推出,提升了用户体验,增强了用户对Kubernetes集群的管理功能,并为Kubernetes的进一步发展提供了有力支持。
1