rancher 和 Kubernetes有什么区别?
总体来说,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有什么区别?的更多相关文章
- Apache的Mesos和Google的Kubernetes 有什么区别?
Apache的Mesos和Google的Kubernetes 有什么区别?本文来自StackOverFlow上的一个问题,主要讨论Mesos和Kubernetes的区别,相信我们很多人也有同意的疑问. ...
- 基于Rancher搭建Kubernetes
基于Rancher搭建Kubernetes可以大大的简化安装的步骤,直接安装Kubernetes操作复杂并且容易出错. 转自 https://blog.csdn.net/u011142688/arti ...
- 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
一.简介 Rancher简介 来源官方:https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从 ...
- rancher下的kubernetes之二:安装rancher和kubernetes
在上一章<rancher下的kubernetes之一:构建标准化vmware镜像>,我们做了个通用的虚拟机镜像,可以root登录,apt已经更新,docker也装好了,现在我们就来安装ra ...
- Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别
Dcoker Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我 ...
- docker和kubernetes docker的区别
之前公司的测试环境,刚开始自己搭建虚拟机,然后安装redis,nginx,mq,mysql,tomcat,jdk,marven,还有jekins.前面些还算好点,jekins还是比较麻烦的.然后搭完以 ...
- 安装rancher以及使用rancher倒入kubernetes集群和添加及管理集群
1.docker安装rancher [root@rancher ~]# docker run -d --name rancher --restart=unless-stopped -p : -p : ...
- rancher下的kubernetes之三:在linux上安装kubectl工具
本章是<rancher下的kubernetes>系列之三,前面两章我们完成了racher下搭建kubernetes环境的实战,本章我们来安装kubectl工具: 系列文章地址 <ra ...
- [原]CentOS7安装Rancher2.1并部署kubernetes (一)---部署Rancher
################## Rancher v2.1.7 + Kubernetes 1.13.4 ################ ##################### ...
随机推荐
- 有关EPX Studio使用DELPHI5作为基础环境版本的说明
英巴卡迪诺北京科技有限公司,地址是北京市朝阳门外大街18号丰联广场B座813B,这家公司这家公司不拥有:delphi 1.0~delphi7.0 .delphi 2005版本的著作权,这些都还是属于B ...
- 【原创】面试官:谈谈你对mysql联合索引的认识?
引言 本文预计分为两个部分: (1)联合索引部分的基础知识 在这个部分,我们温习一下联合索引的基础 (2)联合索引部分的实战题 在这个部分,列举几个我认为算是实战中的代表题,挑出来说说. 正文 基础 ...
- 贵州省网络安全知识竞赛团体赛Writeup-phpweb部分
0x01 混淆后门#conn.php 首先还是拖到D盾扫描 打开conn.php发现底部有那么一串代码: 对这个代码进行分析 首先可以对几个比较简单的变量输出看一下 $s输出内容为create_fun ...
- Java BIO、NIO与AIO的介绍(学习过程)
Java BIO.NIO与AIO的介绍 因为netty是一个NIO的框架,所以在学习netty的过程中,开始之前.针对于BIO,NIO,AIO进行一个完整的学习. 学习资源分享: Netty学习:ht ...
- FtpServer穿透内网访问配置踩笔记
FtpServer穿透内网访问配置踩笔记 引言 FtpServer是服务器文件远程管理常用方式. 以前在局域网配置Ftp服务器以及使用公网上的Ftp服务均未碰到问题,固未对Ftp传输进行深入了解. 然 ...
- pd库dataframe基本操作
一.查看数据(查看对象的方法对于Series来说同样适用) 1.查看DataFrame前xx行或后xx行 a=DataFrame(data); a.head(6)表示显示前6行数据,若head()中不 ...
- tigervnc使用总结
vncserver和x0vncserver用法总计 通常vncserver :port 会调用到xvnc,这时系统会新建一个虚拟桌面通过vncserver分享出去. vncserver的用法很简单: ...
- git的cd命令
这个命令是进入某个文件夹的命令.进入文件夹后可以对文件夹中的文件进行一系列操作.
- 【转】.strip().split('t')和.strip().split()
https://blog.csdn.net/qq_35290785/article/details/94780620 .strip().split('t')line =' nihao, zhenhao ...
- Tensorboard 详解(上篇)
花间提壶华小厨 1. Tensorboard简介 对大部分人而言,深度神经网络就像一个黑盒子,其内部的组织.结构.以及其训练过程很难理清楚,这给深度神经网络原理的理解和工程化带来了很大的挑战.为了解决 ...