k8s集群管理平台:Kubesphere与Rancher对比

Rancher和Kubesphere都是比较优秀的k8s集群管理平台,对于降低k8s集群运维复杂度,降低运维成本,使开发能尽快上手、部署服务都是非常

下面表格对比一下二者的区别。仅仅是个人的一些浅见,欢迎讨论。

  Rancher生态 Kubesphere
部署方式 需要提前安装好docker,通过Rancher或RKE方式部署,提前定义好网络、服务、备份、版本等参数,主机角色,比较方便运维进行管理维护

两种部署方式:
1. 直接通过rancher部署集群,设置好相关参数
优点:简单方便,设置好主机角色,网络参数,服务参数即可,如果是测试环境,可以直接用默认配置,部署时间大大缩短
确定:可维护性没有RKE部署方式好

2. 使用RKE方式部署
优点:配置好相关的cluster.yml文件,可以直接部署。可维护性好,后期增加节点、修改集群参数比较方便
缺点:没有通过rancher直接部署方式直观,易操作

整体优点:etcd备份与恢复机制,CA证书轮转操作都比较简单,对于运维进行集群维护比较友好
整体缺点:角色权限分配粒度不够细,开发进行应用部署较Kubesphere,操作不够简化
Kubeshpere
通过ansible进行部署,类似于kubeadm部署方式,只要在部署前配置好节点角色,需要安装的组件参数即可

优点:部署简单,对于开发进行程序发布比较友好,易上手。但是感觉部署复杂度较RKE高,ansible简化了相关安装流程。
缺点:监控告警机制不够完善,告警方式只有邮件,日志输出很大程度只能用内置的es(资源使用比较多),只有一种
高可用性 master,etcd高可用部署,设置好主机角色,直接修改配置文件或使用命令添加主机即可,Rancher服务可以内置或外置,单节点Rancher master,etcd高可用部署,修改配置文件,设置好主机角色,需要配置api网关负载均衡,然后执行相关脚本即可
集群维护性 维护简单。etcd备份与恢复,有专门的文档,命令。CA证书到期转换有专门的命令或者在界面操作即可。集群扩容可以修改配置文件执行命令即可,或者直接在界面操作。一个Rancher可以维护多个k8s集群。 维护相对简单。etcd备份有定时任务。集群扩容,修改配置文件,执行相关脚本即可。工作节点执行addnode.sh,etcd、master节点执行install.sh,ansible方式类似于声明式,不会对原有集群服务有太大影响(可能会有服务重启)。集群升级有专用脚本,但是感觉还是不太完善。一个Kubesphere只能对应一个k8s集群。
应用部署便捷性 相对简单 简单,易上手,对开发人员很友好,界面比较直观。
账号管理 权限分配比较细,但是比不上Kubesphere 权限分配很细,直观
日志 有多种输出方式。没有日志查询界面,不过可以用kibana查询。 可靠的只有es这一种。日志查询界面比较友好
监控与告警 有多种告警方式,支持webhook,企业微信,邮件等 只有一种告警方式:邮件
整体感觉 对于运维来说,比较友好。集群维护比较简单易上手,中文文档很完善,而且Rancher可以维护多个k8s集群。但是项目权限分配还不够细,有些内容并不想让开发看到,但是权限设置不了。 对于运维来说,集群维护可以直接参考kubeadm部署的方式进行维护,包括集群扩容、高可用、备份与恢复。对于项目管理,账号权限分配的比较细,而且对于k8s了解比较少的人也能很快上手。整体界面比较直观。
个人总结 面向运维较友好 面向应用部署较友好

 

知乎上面也有相关的讨论:https://www.zhihu.com/question/348609092

 

个人感觉:
1. Rancher更侧重于底层k8s集群的维护,相关的k8s周边生态没有Kubesphere整合的好。当然,这样的话可选择性也更多了。

2. Kubesphere相对于刚上手的人来说,比较傻瓜化,而且包括一些CI、CD的东西都做了整合。

3. 两种方案都是很不错的,结合用起来可能更好吧。可以根据需要来进行权衡。

你可能感兴趣的:(k8s)