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

news2025/1/18 17:09:47

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

    推荐视频    

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

02.加载GDT表,进入保护模式

加载GDT表,进入保护模式 加载GDT表,实现操作系统从实模式进入保护模式 参考 操作系统学习 — 启动操作系统:进入保护模式 保护模式与实模式 GDT、GDTR、LDT、LDTR 调用门与特权级 趣谈 Linux 操作系统 在01.硬盘启动盘,加载操作系…

要能力、要稳定也要降本——百度多媒体技术回顾

摘要:多媒体技术生态进入到存量市场,客户既要又要还要成为常态。如何将能力、质量与稳定性、成本不断优化,就是各个多媒体技术平台的必修课。本文以百度智能视频云为例,纵览了其在RTC、边缘计算、视频编码等关键能力与用户体验和成…

腾讯搜索的系统架构是如何达到99.994%高可用的?

👉腾小云导读 本文主要是搜索在稳定性治理实践的经验总结,讲述了搜狗搜索在技术债治理基础上如何将可用性提升一个量级,事故级 MTTD(平均故障检测时间)、MTTR(平均响应时间)优化一个量级&#x…

chatgpt赋能python:Python的IDLE运行方式

Python的IDLE运行方式 Python是一种非常流行的编程语言,其优雅简洁的语法和丰富的库资源,使得Python在很多领域都得到广泛应用。在Python的开发过程中,IDLE是一种常用的Python集成开发环境(IDE),对于初学者…

关于操作系统调度器的三篇论文

【引子】没有忘记,目前从事的是DingOS 操作系统相关工作,没有因为LLM 而迷失。LLM 会成为基础设施,LLM 会为操作系统赋能,但是操作系统的价值是客观存在的,除非,计算机体系结构发生了翻天覆地的变化。 在任…

Java面试都只是背答案吗

Java 八股文面试当然要背,不背很难通过面试的 Java基础 Java基础面试题 Java的特点Java 与 C 的区别JDK/JRE/JVM三者的关系Java程序是编译执行还是解释执行?面向对象和面向过程的区别?面向对象有哪些特性?数组到底是不是对象&a…

编写Python程序求数组中最长的字符串

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 移船相近邀相见,添酒回灯重开宴。 大家好,我是皮皮。 一、前言 前几天在Python白银群【王子】问了一个Python基础的问题&#x…

Ubuntu离线安装docker与nvidia-docker

Ubuntu离线安装docker与nvidia-docker 安装 docker 20.10.17安装 nvidia-docker 和 nvidia-container-toolkit docker与nvidia-docker离线安装包 安装 docker 20.10.17 查看Ubuntu操作系统版本的详细信息,不同的版本所依赖的deb不同。 lsb_release -aCodename为&a…

一文带你读懂:TCP连接的三次握手和四次挥手(上篇)

TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。 天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式。 下面我们通过实操,来彻底理解三次握手和四次…

linux ubi文件系统更新失败问题分析2

昨天打包了一个ubi根文件系统,打包成功,写板子flash成功,但系统运行后还是老的文件系统,具体过程如下: 使用脚本1,打包rootfs系统: 打包后的文件系统,下载到板子后,查看…

01_MySQL索引简介

影响性能下降、SQL慢体现在:执行时间长或者等待时间长 影响sql性能的常见情况: 数据过多:分库分表(根据微服务划分库、按照地域或时间分表存储、按照数据的特定字段对分库数量求余)关联了太多的表,太多join:允许表出现…

在口袋妖怪世界中理解ChatGPT的思维

深度学习自然语言处理 原创作者:Winni 今天为大家分享一篇研究,当ChatGPT穿越到口袋妖怪世界,是否会理解并应用这个虚构世界的知识呢? 熟悉口袋妖怪的朋友们一定知道,这些可爱的生物们有着各种不同的属性、类别和技能。…

TypeScript Vs JavaScript 区别

一、观察 1. JS 平常的复制类型 let val; val 123; val "123"; val true; val [1, 3, 5]; 注意点: 由于JS是弱类型的, 所以只要定义了一个变量, 就可以往这个变量中存储任意类型的数据 也正是因为如此, 所以会给我们带来一个问题 2. 假设a是一个数组, b是一个数值…

java+SSM+vue停车场管理系统

家家户户对于汽车的需求日益的增长。在促进了汽车行业的发展的同时,也对我国的交通造成了较大的压力。首先在日常的出行中,老旧城区道路狭窄,容易造成车辆的堵塞,每天早晚,接送孩子的车辆数密集,会造成相应…

【工业控制系统安全】深入了解 ICS612:ICS 网络安全:第 1 部分

ICS 从业者可以立即在实际情况中使用他们的 ICS612 培训。 降落飞机 我认识一家生产工厂的首席执行官,我们就叫他比尔吧,他希望他的关键团队成员真正了解他的运营团队每天为实现生产目标而承受的压力。比尔还希望他的经理和支持人员能够理解“让它发生”…

你知道支付宝转账怎么在自己的手机上不留痕迹吗

支付宝和微信支付是现代社会中非常普遍的移动支付方式,可以方便快捷地完成各种线上和线下交易。然而,在一些情况下,用户可能希望隐藏或删除某些转账的痕迹,以保护个人隐私或避免不必要的麻烦。对于支付宝而言,实际上有…

RabbitMQ - 幂等性、优先级、惰性

RabbitMQ - 幂等性、优先级、惰性 幂等性优先级队列惰性队列 幂等性 概念 用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。 举个最简单的例子,那就是支付,用户购买商品后支付,支付…

Mysql中联合索引的最左匹配

联合索引 通过将多个字段组合成一个索引,该索引就被称为联合索引。 比如,将商品表中的 product_no 和 name 字段组合成联合索引(product_no, name),创建联合索引的方式如下: CREATE INDEX index_product_no_name ON product(pr…

尝试用Go goroutine实现一个简单的聊天服务

hello,大家好,我是张张,「架构精进之路」公号作者。 对于聊天服务,想必大家都不会陌生,因为在我们的生活中经常会用到。 我们用 Go 并发来实现一个聊天服务器,这个程序可以让一些用户通过服务器向其它所有用…

总有人问我 Cookie 是什么?

苏生不惑第432 篇原创文章,将本公众号设为星标,第一时间看最新文章。 之前分享过我写的微博批量下载工具2023 更新版:苏生不惑开发过的那些原创工具和脚本 ,因为要输入自己账号的cookie,总有人问我cookie是什么?今天写…