从业务出发,K8S环境自建和非自建整体架构设计比较

7bba8101244111c42ac2c9c1dc9d5596.gif

新钛云服已累计为您分享751篇技术干货

6b8692996c91a44ad6d7cdbc8355bd7f.gif

随着数字化转型的大潮到来,越来越多的企业开始上云,同时也纷纷加入到微服务和K8S队伍中。但在K8S整体环境究竟应该用自建的还是非自建?以及他们需要用到的服务,究竟应该自建还是直接用PAAS服务?这些问题往往会困扰住大家。

我在这里以中立的角度阐述下各自的优劣,给大家提供一些参考帮助大家能做出更利于公司发展的选择

在进行对比之前,我们先来了解一些概念。

1、什么是自建K8S?

所谓自建,就是使用自己在物理机和虚拟机上部署的开源Kubernetes平台。

2、什么是非自建K8S?

非自建就是云上的PAAS服务,全套的从物理层到容器层的环境都由云厂商提供,底层也是基于开源的Kubernetes打造的,云上一般都自带管理工具。

k8S平台对比

K8S平台无论你用云上的还是自建的,其底层都是一样的。云上的服务会比自建的多一个管理界面,让管理K8S平台变得更容易。在实际生产过程中,我们也很少需要登录到Master节点上去进行命令行操作。

发布可以通过统一的发布平台,看日志排错可以通过统一的日志平台。只有极少数的紧急突发情况需要登录到K8S的容器环境里去进行生产的直接调试排错。因为整个K8S环境是面向所有服务的,所以要尽可能的避免直接登录到K8S服务器上进行操作。

然后回到对比这个问题的本身,个人认为云上的服务比自建要好。云上优势如下:

1

维护成本低

云上K8S服务除了不需要你部署之外,产品自身出现问题均有客服帮你解决。且自带的管理界面基本满足日常的配置需求。

2

PAAS服务集成度更高

如果你要和NAS或其它PAAS服务做集成,那肯定是用云上的更方便,如果是自建的会有一定的定制开发成本甚至完全无法集成都有可能。

3

稳定性更高

稳定性为什么会比自建高呢?因为自建的是面向所有大众的哪怕有人踩过了坑但他解决后不提交问题,所以这个问题仍然存在未被修复。而云上的只要有人反馈必定会被解决,而且厂商肯定会想办法修复这些问题避免其它客户踩坑。

4

环境部署速度快

不要小看这个优势,也许有一天他是你业务能快速恢复的救命稻草。

说完优势再来说下劣势:

5

成本比自建略高

根据选择的版本不同会有价格的差异,部分版本会收取额外的平台增值费用。

6

对个人学习成长不利

如果你是一个技术控,那么自建更适合。

下面我再举两个实际案例:

案例1:某服装电商K8S选型历程

该公司最初为了不被云厂商绑定,选择了自建k8S平台,但在运行一段时间准备上生产之前,突然K8S网络出现故障,持续数日无法解决问题。最后,还是选择云上K8S服务,运行至今未出现任何问题。

案例2:某在线教育公司自建K8S故障

该公司初期资源都在IDC机房,和上面案例一样,某一天突然K8S网络出现故障,导致生产业务全部中断,所幸当时已过了业务高峰期,在确定无法修复的前提下进行重新环境部署和生产发布调试,整个过程持续了一天一夜。

K8S管理平台对比

在做这个对比之前,我首先要灵魂拷问一下读者,你要用这个管理平台做什么?是想要一个能从创建到应用发布多功能的平台,还是要一个只管理K8S平台自身的工具。

如果你想要一个多功能的平台,那这个平台是否直接支持云上K8S服务?功能是不是全部满足?每个功能模块是不是足够出色?如果有新功能需求是否支持定制开发?还有如果是第三方产品,本身出问题或不更新维护了是否意味着业务将停止不前?

所以管理平台我建议还是选用只管理K8S平台自身的工具,让非K8S自身的模块交给其它专业的工具去处理。如果是用云服务的那用云服务自身的管理平台就足够了。

下面我分别介绍一个第三方的和阿里云自身K8S管理平台,并做下比较供大家参考。

1

Rancher

Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

Rancher由以下四个部分组成:

• 基础设施编排

• 容器编排与调度

• 应用商店

• 企业级权限管理

整体来说Rancher满足企业日常的K8S平台管理功能,同时他也能管理主流的云上K8S服务集群。如果作为一个K8S基础管理平台,它是完全符合的。

2

 阿里云自带K8S管理平台

阿里云ACK平台在经过数年打磨之后已经相当成熟和稳定,功能也比较丰富,并且可以结合服务网格服务进行流量的管控。

它主要功能如下:

• 集群管理

除了可以管理自身的集群外,也可以通过注册集群管理外部的Kubernetes集群:

• 镜像服务

• 编排模版

• 应用市场

• 应用中心

可以多云多集群的部署分发:

• 备份中心

备份中心为Kubernetes集群中应用/数据提供了备份、恢复与迁移的一站式的解决方案,并支持跨集群和混合云。从功能来说阿里云ACK平台要比Racher更强大。完全可以满足企业的日常需求。

针对K8S配套的数据库和中间件

使用自建和PAAS服务选型

如果你是怕被绑定而选择自建服务,那大可不必。因为在你选择拥抱公有云的那刻起你就注定了会被公有云给绑定。它的优劣和选择自建和非自建K8S服务基本是一样。核心点也是稳定性,PAAS服务的稳定性要大于你自建服务。

而且PAAS服务通常会伴随着各家云的一些特色功能。比如阿里云的RDS原生支持数据存储加密和传输加密,还支持读写分离。做备份和容灾也更容易。

也许你还会问如果你要迁移怎么办?迁移的话无论你是用自建还是PAAS服务都是可以迁移的,两者在耗时上实际是差不多的。迁移服务一直都不是一件容易的事。

K8S环境CICD的选择

现在各家平台和厂商都会在管理K8S的时候集成发布平台。但要把发布这个工作做好并不容易。各家平台提供的大多数是基础的修改Yaml配置来达到发布的效果。如果要在发布流水线中集成代码安全扫描和自动化测试会变得很困难。所以专业的发布工作还是要交给专业的发布工具。例如:Jenkins。

总结:

K8S环境应该为业务服务,要力求稳定、可弹性,其它任何理由均要在这个基础上才能做进一步的分析。

以下为个人对上述观点的总结,仅供参考:

一、K8S平台选择自建还是非自建个人建议选择非自建的PAAS服务,原因是更稳定。无论其它理由在怎么充分稳定肯定是业务的首要关注点。如果非要尝试自建则建议在非生产环境部署同样版本的K8S环境。

二、K8S管理平台选择顺序如下:

• 如果云环境自带的管理平台功能满足则优先使用云平台自带的。

• 如果云环境自带功能不满足则考虑多个产品同时使用,不建议绑死在一个产品上。

三、数据库和中间件选择云的PAAS服务,如果是非核心业务且对稳定性要求不高的可以考虑自建。

四、CICD使用专业的工具,前期维护成本略高,后期稳定后只要修改下模板参数即可。

以下为总结的对比表:

b0cf1bd7a914f9e9e3e1bc0229cd14bf.jpeg

最后建议,如果最终目标是想要实现PAAS服务自建的,建议在非生产环境做。如果有一天认为各方面条件都达到上生产环境了。则进行逐步的生产环境业务替换。把生产环境的PAAS服务逐步替换成自建服务。

    推荐阅读   

8bf20fcd58d027f0309856697c259126.png

beebe2a8ea16dacdc8b3c91af66a13f0.png

    推荐视频    

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

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

相关文章

C++【STL】之list的使用

文章目录: list介绍list使用1. 默认成员函数1.1 构造函数1.2 拷贝构造1.3 赋值重载1.4 析构函数 2. 迭代器3. 容量操作4. 数据访问5. 数据修改5.1 插入删除5.2 交换调整清理 6. 其他操作6.1 链表拼接6.2 链表移除6.3 排序6.4 链表逆置 list介绍 list是可以在常数范围…

java 版本企业电子招投标采购系统源码之登录页面

​ 信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…

轻量服务器架设网站打开速度慢,如何加速?

轻量服务器非常适合流量适中的小、中型网站,虽作为轻量级主机包,但它一般与云服务器使用同样的 CPU、内存、硬盘等底层资源。只是,轻量服务器的资源(可用的存储空间、RAM 和 CPU等硬件/内存容量)更低,虽然这些对于较中、小的网站来…

性能优化-内存优化

8-《内存优化》 一.基础知识1.Java的内存分配区域2.Java的引用类型3.Java的垃圾回收机制:三个问题4.Android的内存管理机制 二. Android的内存泄漏、内存溢出、内存抖动概念0.内存泄露1.内存溢出![在这里插入图片描述](https://img-blog.csdnimg.cn/8b73ef844f26470…

png转jpg,直接改后缀?

通过把.png改为.jpg可以改变图片的格式么? 将PNG文件扩展名改为JPEG的扩展名(.jpg或.jpeg)不会更改图像的格式。它只是更改了文件扩展名,这可能导致一些图像查看器和编辑器无法正确识别和处理该文件。 PNG和JPEG是两种不同的图像文…

Python自动人工智能训练数据增强工具 | DALI介绍(含代码)

Python自动人工智能训练数据增强工具 | DALI介绍(含代码) 文章目录 Python自动人工智能训练数据增强工具 | DALI介绍(含代码)自动数据增强方法DALI 和条件执行使用 DALI 自动增强使用 DALI 的自动增强性能尝试使用 DALI 进行自动增强 深度学习模型需要数百 GB 的数据才能很好地…

练习:逻辑回归

练习2:逻辑回归 介绍 在本练习中,您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法,来提高算法的鲁棒性,并用更复杂的情形来测试模型算法。 在开始练习前,需要下载如下的文件进行数据上…

研一,有点迷茫。

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「277」篇原创 小伙伴们大家好,我是阿秀。 最近回答了不少大一大二研一在读的学习圈中学弟学妹的咨询问题,基本都是计算机学习、进度、疑惑等等相关的问题&a…

Mock和Vite-plugin-Mock的区别是什么?

简介 我不知道大家和我是否有一样的疑问,之前Mock.js用的挺好,为啥又出现了一个vite-plugin-mock,而且这个插件还依赖于Mock.js.那么他的优势到底是什么呢?如果你也有这样的疑问,本文最后会给出答案解开这个谜底 前言 我之前已经…

MVC、MVP、MVVM:详解2

概述 MVC、MVP、MVVM 都是在 Android 开发中经常用到的架构思想,它们都是为了更好地分离代码、提高代码可复用性、方便维护等目的而设计的。下面对这三种架构思想进行简单的介绍和比较。 MVC MVC 架构是最早被使用的一种架构,它把程序分成了三个部分&…

EasyExcel实现execl导入导出

引言 在实际开发中,处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库,提供了简单易用的 API,可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能,以及一些相关的技巧和注…

【问题记录】Visual Studio 下的Qt工程无法打开 “xxx.ui“ 文件和LNK1104 无法打开文件“Qt5Cored.lib”错误

环境 Windows 11 家庭中文版Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.5.3qt-vsaddin-msvc2022-2.9.1-rev.06 问题产生 VS下Qt环境准备好后,创建了Qt工程然后点击 Form Files 下的 “xxx.ui” 文件,在弹出 Qt 设计师 界面后…

电脑出现MSVCP100.dll丢失错误怎么办?

MSVCP100.dll是一个Windows系统文件,它可以确保Windows程序正确平稳运行,如果该文件安装不正确、丢失或损坏,则使用该文件的应用程序将无法正常启动,会出现“无法启动此程序,因为计算机中丢失MSVCP100.dll”的错误提示…

从零开始 Spring Boot 42:异步执行

从零开始 Spring Boot 42:异步执行 图源:简书 (jianshu.com) 在之前的文章中,我多次介绍过在 Spring 中如何使用Async注解让方法调用变成“异步执行”: 在这篇文章中,介绍了如何让定时任务使用Async变成异步执行。在…

数据结构——图

文章目录 **一 图的基本概念****1 定义** **二 图的存储及基本操作****1 邻接矩阵法****2 邻接表法****3 十字链表****4 邻接多重表****5 图的基本操作** **三 图的遍历****1 广度优先搜索BFS****2 深度优先搜索DFS****3 图的遍历与连通性** **四 图的应用****1 最小生成树****…

Kendo UI for jQuery---03.组件___网格---02.开始

网格入门 本指南演示了如何启动和运行 Kendo UI for jQuery Grid。 完成本指南后&#xff0c;您将能够实现以下最终结果&#xff1a; 1. 创建一个空的 div 元素 首先&#xff0c;在页面上创建一个空元素&#xff0c;该元素将用作 Grid 组件的主容器。 <div id"my-…

Chat2DB:阿里巴巴开源的聊天数据管理工具--实践

Chat2DB&#xff1a;阿里巴巴开源的聊天数据管理工具–实践 简介 ​ Chat2DB 是一款有开源免费的多数据库客户端工具&#xff0c;支持windows、mac本地安装&#xff0c;也支持服务器端部署&#xff0c;web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了…

Android音视频开发实战01-环境搭建

一,FFmpeg介绍 FFmpeg 是一款流行的开源多媒体处理工具&#xff0c;它可以用于转换、编辑、录制和流式传输音视频文件。FFmpeg 具有广泛的应用场景&#xff0c;包括视频编解码、格式转换、裁剪、合并、滤镜等等。官网:https://ffmpeg.org/ FFmpeg 支持各种常见的音视频格式&a…

计算机视觉-目标检测(二):从R-FCN到YOLO-v3

文章目录 1. R-FCN1.1 动机1.2. R-FCN 网络结构1.3. R-FCN 的损失函数1.4. R-FCN的训练及性能 2. YoLO-v12.1 简介2.2 YOLO-v1网络结构2.3 目标函数2.4 YOLO-v1的优缺点 3. YOLO-v23.1 YOLO-v2相比v1的优化 4. YOLO-v3参考 1. R-FCN 论文链接&#xff1a;R-FCN:Object Detecti…

在提交代码时有哪些注意事项

分享 10 种适合初学者的技术&#xff0c;这些技术将帮助您立即编写更好的代码。因此&#xff0c;如果您准备好将您的编码技能提升到一个新的水平&#xff0c;请继续阅读&#xff01; 1. 从计划开始 编写更好代码的最佳方法之一是从计划开始。在开始编码之前&#xff0c;请花几…