中小型公司如何搭建运维平台,rancher、kubersphere、rainbond

很多开发人员应该是了解过运维发布相关的平台或实际操作过应用发布,但又通常不是十分熟悉。在一个初创公司,或者没有成熟的运维发布平台的公司,如果让你来搭建一套发布平台,你应该如何去抉择呢?

这里我简单介绍几种。

Tomcat + nginx

有不少公司在初期项目数量很少时有使用这种方式的,一两台云服务器,把项目打个jar上传上去,启动起来完事,主打一个简单便捷。其实这种方式在不少情况下还是不错的选择,并不是所有公司都适合docker、k8s那一套的,这样比较节省服务器资源,low是low了点,适应自己就行。

docker、docker compose

服务器上装个docker,然后把项目代码打成容器镜像,在服务器上运行镜像。

这种方式也有不少开发者在使用,代码打成镜像可以选用阿里云的容器镜像服务,有免费的也有收费的方式,指定代码地址编写Dockerfile即可打成镜像供服务器使用。

纯命令行形式的docker方式其实我不太赞成,毕竟没有可视化界面就很难把控服务的运行状态,以及启动、关闭等操作还得敲命令挺麻烦的,推荐使用portainer这种简易的容器管理界面平台进行管理。操作、查看日志都比较方便。portainer操作简单,功能也不多,基本就是docker的基本管理。

rancher1.6平台

rancher1.6是我长期使用的、也认为是非常适合于中小规模的公司作为企业发布平台,之前曾经写过多篇rancher的使用教程,虽然目前rancher官方已经停止维护1.6版本,而全面转向k8s的2.x版本,但是1.6依旧是可以使用的,目前直接docker pull rancher还是拉取的是1.6版本。

之前的rancher安装教程:安装配置Rancher管理docker-CSDN博客

rancher1.6采用自己的cattle编排方式,通过设置镜像地址的方式来启动各个容器,大家仍然可以采用阿里云容器镜像服务来进行镜像的制作,然后在rancher上添加服务、设置镜像地址即可。

rancher里面还有添加服务依赖的功能,可以将多个服务关联起来,从而进行容器间的服务调用而无需设置IP就能进行访问。同时里面还内置了负载均衡器,可以将服务暴露到外网,作为反向代理进行使用,类似于k8s的ingress的功能。

rancher用来管理规模不大,如50台以下的服务器集群,进行应用服务的容器化编排,其实是非常合适的。内置的编排方式cattle其实是很不错的,和k8s很类似,但整体的学习成本使用成本可比k8s简单太多了,没那么多概念需要理解,上手半小时就能直接进行运维了,而k8s光学习就得好几天。

对于规模不大的服务,可以选择rancher1.6作为发布运维平台。

k8s原生

这年头作为开发要是不会k8s感觉都不好意思跟人打招呼一样,无论多小的公司、三两个服务也得上k8s,对此我只想说,你开心就好。

技术很难,但在合适的场景下能做出正确的选择更重要,过度设计比不会设计更可怕。

目前k8s肯定是主流的运维发布首选,但在上k8s之前,建议还是先考虑考虑是不是有必要性,如果就没几个服务,也不要强行就上springcloud、dubbo之类的微服务框架,至少rancher1.6就可以搞定大部分的场景了。k8s和k3s差不多,有时上个k3s也可以。

这玩意自己搭建的话说实话有点麻烦的,尤其是原生搭建,不建议开发自行尝试,一来要好几台服务器,二来确实步骤多很麻烦,一上来就搭建k8s环境,网上搜很多教程,又搞不成功就容易把你劝退。

目前国内有几个比较成熟的一站式k8s环境搭建的方式,譬如kubersphere、rancher2、rainbond都提供了自己的快速搭建k8s集群的功能,大家访问他们的官网就能看到。如果是用的云服务,那么阿里云的ACK也是搭建好的k8s环境,这些都可以避免手工搭建k8s环境的困难。

如果你头铁,就是要自己在空的服务器上搭建,那么也可以尝试,仅学习即可,学几个命令,搞不定也没关系,反正日后大概率不会用原生的命令部署啥的。

kubersphere、rancher、rainbond

这三个都是开源免费平台,都是用来搭建、管理k8s集群的,但都侧重点不同。

如果你就是普通的开发,想快速的构建起k8s平台并发布运维项目,也不想去学习那么多的k8s的概念,什么deployment、service、ingress等等,也不愿意去学,那么rainbond非常适合你,Rainbond是什么? | Rainbond

它和rancher1.6类似,都是非常容易上手的平台,在自己本机就能搭建起k8s环境并进行发布、管理。也支持发布容器镜像、代码源构建、应用市场等多种来源的应用构建,也支持服务依赖(和rancher1.6的应用关联类似),整体还是比较容易上手的。其中服务间通信也提供了service mesh和k8s原生两种方式。整体我比较推荐rainbond,因为难度最低,对开发来说不需要懂k8s就可以快速上手。

而kubersphere和rancher2.x也都是比较流行的k8s管理平台,其中rancher还创造了k3s。这两个平台我都用过,但都有相当的难度。kubersphere基本上就是把k8s的各个概念组件给界面化了,你需要了解deployment、service等各个k8s的概念才能玩的转,而且查看日志很不方便,里面还需要手工编写一些k8s的yml文件才能发布启动,整体我感觉不适合新手开发。

rancher相对来说不需要手工写一些配置,但也是暴露了很多k8s的概念在里面,你还是需要懂service、ingress等,不然还是跑不起来。

kubersphere和rancher我理解就是将k8s的各个功能给界面化了,并且提供了快速部署起k8s集群的能力,都有相当的操作使用复杂度,对于开发人员来说,并不是很容易。

综上,对于一个尚未有完善运维发布平台的公司,而且后续也不打算招专门的运维人员的场景下,如果规模不大,机器也不多,我建议使用rancher1.6,如果稍复杂,并期望用k8s,我建议上rainbond。并且建议用阿里云的容器镜像服务来进行代码的打包镜像化,不太建议自建jenkins搞流水线那套,运维平台只负责发镜像搞服务关联即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/197261.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

diffusion model (九) EmuEdit技术小结

文章目录 背景1 核心思想2 方法2.1 方法建模2.2 数据工程2.2.1 image-edit任务类别定义2.2.2 指令集生成2.2.3 图片对的生成 3 结果 Paper: https://emu-edit.metademolab.com/assets/emu_edit.pdf Project web: https://emu-edit.metademolab.com/ Code: have not opensourc…

干货分享 | TSMaster采样点配置方法与消除错误帧流程

当通讯节点间采样点参数和波特率参数不匹配造成一些错误帧时,我们如何在TSMaster中设置以及调整波特率参数和采样点参数,来减少以及消除总线上出现的错误帧,进一步提高通信质量。本文着重讲解讲解如何借用TSmaster更加便捷地获取相应的采样点…

【精】A data-driven dynamic repositioning model in bicycle-sharing systems

A data-driven dynamic repositioning model in bicycle-sharing systems 爱思唯尔原文 doi:https://doi.org/10.1016/j.ijpe.2020.107909 article{data2021BRP, address {Univ Cambridge, Inst Mfg, Cambridge CB3 0FS, England}, author {Zhang, Jie and Meng, Meng and W…

微服务--04--SpringCloudGateway 网关

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.网关路由1.1 认识网关在SpringCloud当中,提供了两种网关实现方案: 1.2.快速入门1.3.路由过滤 2.网关登录校验2.1.鉴权思路分析2.2.网关过滤…

力扣23. 合并 K 个升序链表(java,最小堆解法)

Problem: 23. 合并 K 个升序链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 思路 1.对于合并k个有序链表,我们较为容易想…

Java —— 泛型

目录 1. 什么是泛型 2. 泛型背景及其语法规则 3. 泛型类的使用 3.1 语法 3.2 示例 3.3 类型推导(Type Inference) 4. 裸类型(Raw Type) 4.1 说明 5. 泛型如何编译的 5.1 擦除机制 5.2 为什么不能实例化泛型类型数组 6. 泛型的上界 6.1 上界语法产生的背景 6.2 语法 6.3 示例 6.…

Node.js入门指南(完结)

目录 接口 介绍 RESTful json-server 接口测试工具 会话控制 介绍 cookie session token 上一篇文章我们介绍了MongoDB,这一篇文章是Node.js入门指南的最后一篇啦!主要介绍接口以及会话控制。 接口 介绍 接口是前后端通信的桥梁 &#xff0…

elk日志分析系统:

elk日志分析系统: elk是一套完整的日志集中处理方案,由三个开源的软件简称组成; E:Easticsearch 简称ES是一个开源的,分布式的存储检索引擎,(索引型的非关系数据库)存储日志 由java代码开发的&#xff0…

麒麟V10桌面搭建FTP服务

1.1介绍 FTP:File transfer protocol (文件传输协议)是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FT…

知识变现的未来:解析知识付费系统的核心

随着数字时代的发展,知识付费系统作为一种新兴的学习和知识分享模式,正逐渐引领着知识变现的未来。本文将深入解析知识付费系统的核心技术,揭示其在知识经济时代的重要性和潜力。 1. 知识付费系统的基本架构 知识付费系统的核心在于其灵活…

CorelDRAW Graphics Suite2023破解版含2024最新注册机下载

CorelDRAW Graphics Suite2023是Corel公司的平面设计软件;该软件是Corel出品的矢量图形制作工具软件,这个图形工具给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。在日常科研绘图中,若较为轻量,通常…

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么?解释: 简单理解就是,不同进程之间进行数据的输入输出…

使用Tensorboard可视化 遇到无法访问此网站

问题: 使用Tensorboard可视化 遇到无法访问此网站 解决方法:后面加上服务器ip[参考] tensorboard --logdir目标目录 --hostxxx.xxx.xxx.xx

[学习记录]Node event loop 总结流程图

文章目录 文章来源根据内容输出的流程图待处理遗留的问题参考 文章来源 详解JavaScript中的Event Loop(事件循环)机制 根据内容输出的流程图 待处理 这里从polling阶段开始 好像有些问题 遗留的问题 为什么“在I/O事件的回调中,setImmediate…

Docker | 自定义Docker镜像

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: My…

AB|如何正确从罗克韦尔官网下载资料?

哈喽呀,大家好,我是雷工! 作为工控行业的从业者,可能要和各个厂家的中控系统、PLC、触摸屏、变频器、等软硬件产品打交道。 虽然从业十余年,但也不可能接触使用过所有的工控产品。还有海量的产品是没有接触过的。 但很…

sql注入靶场

第一关: 输入:http://127.0.0.1/sqli-labs-master/Less-1/?id1 http://127.0.0.1/sqli-labs-master/Less-1/?id1%27 http://127.0.0.1/sqli-labs-master/Less-1/?id1%27-- 使用--来闭合单引号,证明此处存在字符型的SQL注入。 使用order …

5.27每日一题(判断函数在那个区间上有界:充分条件不是必要条件)

若f(x)在(a , b)上连续,且f(a0),f(b-0)存在(及函数的左右极限存在)>f(x)在(a,b)上有界

springboot中4级配置文件优先级

springboot中4级配置文件优先级