总体来说,Rancher和k8s都是用来作为容器的调度与编排系统。但是rancher不仅能够管理应用容器,更重要的一点是能够管理k8s集群。Rancher2.x底层基于k8s调度引擎,通过Rancher的封装,用户可以在不熟悉k8s概念的情况下轻松的通过Rancher来部署容器到k8s集群当中。

为实现上述的功能,Rancher自身提供了一套完整的用于管理k8s的组件,包括Rancher API Server, Cluster Controller, Cluster Agent, Node Agent等等。组件相互协作使得Rancher能够掌控每个k8s集群,从而将多集群的管理和使用整合在统一的Rancher平台中。Rancher增强了一些k8s的功能,并提供了面向用户友好的使用方式。

多集群管理

用户可以通过很多种方式搭建一个k8s集群,可以是在本地机器上手动搭建,可以在公有云厂商的服务器上手动搭建,也可以直接使用公有云厂商的k8s集成服务。Rancher能够将所有部署在不同地点,通过不同方式搭建的k8s集群统一管理起来。Rancher通过不同的插件和驱动适配了不同场景的k8s集群。 对于用户而言,它们无需关心底层k8s的实现细节,统一通过Rancher UI或Rancher API就可以在不同的k8s集群里部署应用。

权限管理

在k8s中,权限管理通常使用RBAC的模式。即用户或应用通过使用证书或ServiceAccount来表明身份,k8s通过检查对应的Role,ClusterRole来确定访问者是否有对应的权限。但是所有的权限管理都仅仅限定在k8s内部,无法与第三方的认证管理系统集成。另一方面,每一个集群都是独立的一套权限管理,在用户有多集群的场景中,没有办法统一的规划多集群的权限管理。不过,k8s在设计之初就已经很明确的表示k8s将不会提供自己的账号管理,这一点应该由外部组件自己实现。

Rancher通过Auth Proxy组件在k8s之外提供了统一的权限管理中心。Auth Proxy可以与第三方认证系统结合。一般情况下,用户通过Rancher提供的kubeconfig认证文件访问的是Racher的Auth Proxy。Auth Proxy经过鉴权后将用户的请求设置对应的请求头,最后通过其他组件将请求转发到真正的k8s API Server。因此,对于用户的开发团队而言,可以直接通过现有的团队权限管理系统来对所有k8s集群的权限进行管理管理。但用户对集群的访问的延时可能因为代理这一步而上升。

应用部署

k8s通过提供大量的API实现了强大的容器编排功能。但是对于上层的应用开发者而言,掌握大量的概念并不容易,而且有很多对于开发并不关心的字段。在k8s中部署应用,通常会通过编写yaml并执行kubectl create -f来实现。这种基于命令行的使用方式并不友好,而且不易于修改,而且yaml文件的编写要求用户掌握每一个字段的合法值,这对于上层用户有很大的学习成本。但一旦掌握了k8s原生的API,用户就可以实现更多定制化的部署需求。

Rancher提供了统一的UI界面来部署应用,功能比k8s官方的UI更强大。了解k8s的用户在使用Rancher部署应用时就会发现的所有选项都可以在k8s的API中找到一一对应的字段。但Rancher对每个选项有更友好易懂的描述,更切合上层开发的概念,因此用户即使不懂k8s也能够轻松部署应用。以Deployment为例,Rancher将应用部署时所需的配置进行了分类,划分为应用调度、健康检查、升级策略等模块,使得配置更简单。Rancher更多的面向的是与k8s无关的应用的部署场景,对于与那些与k8s紧密结合的应用,它们所需的一些k8s资源并不能完全在Rancher中统一管理。比如部署自己开发的k8s operator所需的webhook配置,RBAC相关配置都需要用户自行导入yaml来实现部署。

Rancher也提供了应用商店的模式,用户可以在商店中浏览并一键部署所需的应用。

集群运维

对于直接使用k8s原生系统的用户,集群运维复杂且费时。集群升级和集群备份都需要人工介入执行多条命令。比如k8s自身升级需要用户了解组件升级的相互依赖,etcd升级需要用户了解etcd的升级策略,并做好相关备份以防数据丢失。节点上线需要人工安装组件,执行命令。

基于Rancher的RKE构建的集群能够自行解决集群升级,集群备份的一些痛点,并提供了完善的回滚机制,减轻了运维的工作量。节点的上下线在Rancher中变得十分简单,通常只需要运行docker容器就完成了一系列自动化部署。

集群监控,日志收集

原生k8s的集群监控,日志收集都依赖第三方的组件,比如Prometheus,fluentd。用户需要自己开发或部署来实现上述功能。

Rancher同样通过集成这些主流的第三方组件实现了集群的监控报警和日志收集,大幅简化了部署的流程。和对k8s概念的封装一样,Rancher也对这些第三方的组件的配置做了封装和优化。

Rancher将报警的配置进行了语义化的配置,涵盖了系统组件,工作负载,节点等常用资源,用户通过Rancher配置报警会比直接编写Prometheus的PromQL语言简单很多,节约学习成本。但也仅此而已,更复杂的报警规则无法直接通过Rancher配置。

网易轻舟微服务基于Kubernetes等云原生技术栈,提供完整易用的解决方案,用户可以轻松部署、更新、测试以及治理其微服务应用,大大提升业务研发效率。

rancher 和 Kubernetes有什么区别?相关推荐

  1. 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)

    一.简介 Rancher简介 来源官方:https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从 ...

  2. 基于Rancher实现kubernetes集群管理

    基于Rancher实现kubernetes集群管理 1.Rancher介绍 2.Rancher部署 添加kubernetes集群 3.Rancher简单操作 1.Rancher介绍 Rancher可以 ...

  3. Kubernetes与OpenShift区别

    参考文章: 两大容器管理平台,Kubernetes与OpenShift有什么区别?_科技_品阅网 OpenShift 和 Kubernetes 有什么区别? - 腾讯云开发者社区-腾讯云 OpenSh ...

  4. Rancher hosted Kubernetes AKS

    本文永久链接: https://www.xtplayer.cn/rancher/clusters/rancher-hosted-kubernetes-aks/ 注意: 因为 rancher 版本的更新 ...

  5. 简单部署 rancher 管理kubernetes集群(3)

    rancher 简单使用 运行docker 容器 环境部署 关闭防火墙与selinux systemctl stop firewalld systemctl disable firewalldsed ...

  6. 选择 podman 的理由, 以及它和 Kubernetes , Docker 的区别

    一.podman 是什么 官方网站: podman.io 官方自己的介绍: https://podman.io/whatis.html 名称 podman ,官方说明是 Pod Manager , 所 ...

  7. Docker,Docker-Compose,Docker Swarm,Kubernetes之间的区别

    来源:https://blog.csdn.net/notsaltedfish/article/details/80959913 Docker Docker 这个东西所扮演的角色,容易理解,它是一个容器 ...

  8. Kubernetes本地集群和Google Kubernetes Engine的区别

    SAP Kyma的安装文档里,曾经提到了Google Kubernetes Engine(GKE)这个概念. 同时,Kubernetes的爱好者,也可以在本地多台机器上部署Kubernetes集群.这 ...

  9. 通过Rancher部署并扩容Kubernetes集群基础篇一

    一 应用场景描述 持续跟踪研究Kubernetes也有一段时间了,Kubernetes作为谷歌开源的生产级别的容器调度系统从开源初始便获得了众多的关注.一些有研发实力的公司调研过Kubernetes的 ...

最新文章

  1. DotNet Core Console 程序使用NLog
  2. 高效算法——E - 贪心-- 区间覆盖
  3. 微信小程序中阻止事件冒泡
  4. c++备考期末必看知识点(一篇就够了)
  5. 【笔记】metasploit渗透测试魔鬼训练营-信息搜集
  6. 依赖注入_set方法注入_构造器注入
  7. Simpleperf介绍
  8. 通俗易懂,先来认识一下Vuex
  9. android没有界面app,Android离线打包 app处于原生界面 切换到桌面再点击app 原生界面被关闭...
  10. 别再透支你的社交信用了
  11. 通过两个简单的案例,让你明白ansible playbook的编写核心
  12. unable to connect to ssl://gateway.sandbox.push.apple.com:2195 错误
  13. Linux快捷键笔记
  14. JAVA_SE实现桌面化功能
  15. 大道至简---软件工程实践者的思想--------------第二章读后感---是懒人造就了方法...
  16. 睢阳区中小学计算机提升培训,商丘市中小学电脑制作活动培训顺利举行
  17. 人造肌肉——双扭绳驱动结构
  18. 看过之后,今年的深信服创新大会确实有点儿不一样……
  19. win7记事本如何转换html,Win7系统打开记事本文本文档出现乱码如何解决?
  20. 基于android的旅游app毕设,安卓157旅游记忆(app+server)

热门文章

  1. c语言-输出带框文字
  2. WPF动态在画布(Canvas)上画一个矩形。
  3. IDEA启动tomcat时出现乱码——淇℃伅
  4. 无文件恶意软件攻击是什么意思?
  5. SpringBoot专题1----springboot与mybatis的完美融合
  6. .net 爬取网页数据
  7. 知易行难?!你让执行力情以何堪!
  8. Android中MediaButtonReceiver广播监听器的机制分析
  9. 招联金融招聘实习生内推
  10. 机械CAD标注技巧:如何在DWG图纸文件中添加序号?