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

这篇具有很好参考价值的文章主要介绍了从业务出发,K8S环境自建和非自建整体架构设计比较。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

随着数字化转型的大潮到来,越来越多的企业开始上云,同时也纷纷加入到微服务和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使用专业的工具,前期维护成本略高,后期稳定后只要修改下模板参数即可。

以下为总结的对比表:

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

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

    推荐阅读   

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

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

    推荐视频    文章来源地址https://www.toymoban.com/news/detail-486431.html

到了这里,关于从业务出发,K8S环境自建和非自建整体架构设计比较的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【K8S源码之Pod漂移】整体概况分析 controller-manager 中的 nodelifecycle controller(Pod的驱逐)

    k8s 污点驱逐详解-源码分析 - 掘金 k8s驱逐篇(5)-kube-controller-manager驱逐 - 良凯尔 - 博客园 k8s驱逐篇(6)-kube-controller-manager驱逐-NodeLifecycleController源码分析 - 良凯尔 - 博客园 k8s驱逐篇(7)-kube-controller-manager驱逐-taintManager源码分析 - 良凯尔 - 博客园 基于 k8s 1.19 版本分析 TaintManager 与

    2024年02月12日
    浏览(31)
  • 【devops】非必要 不要自建harbor 能力不足 真的被坑的服了 阿里云ACR不香吗?k8s接入ACR

    首先你需要让出来这2个端口,然后如果你要https的话,你还要考虑443怎么配置上不同证书(目前我是不清楚这里可不可以) 而且能让这里生效的方式,还需要再2处进行修改(自行查找) 我在阿里云一次买了5台服务器 选择其中一个创建了harbor 然后再其他4台中,有三台是可以

    2023年04月09日
    浏览(37)
  • 验证K8S集群pod之间传输速度过慢,导致pod之间业务无法正常交互

    原因: K8S部署完成后,但是pod之间无法进行交互访问,导致pod异常 定位思路: 通过启动两个busybox容器,之间进行scp传输文件,验证pod之间tcp连接是否正常 解决方法: 运行第一个busybox 拷贝文件至busybox1 进入第一个busybox1 进入第二个busybox1 结论: 发现1K的文件可以相互拷贝

    2024年03月19日
    浏览(56)
  • Day920.结构化日志&业务审计日志 -SpringBoot与K8s云原生微服务实践

    Hi,我是 阿昌 ,今天学习记录的是关于 结构化日志业务审计日志 的内容。 结构化日志 (Structured Logging)是一种将日志信息组织为结构化数据的技术。 传统的日志通常是一些文本信息,比如一行记录一个错误或者事件,这些信息往往是自由格式的。 相比之下,结构化日志则

    2023年04月09日
    浏览(29)
  • 轻量级 K8S 环境、本地 K8S 环境Minikube,一键使用 (史上最全)

    文章很长,而且持续更新,建议收藏起来,慢慢读! 疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 : 《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 经典图书: 《Java高并发核心编程(卷1)加强版》

    2024年02月03日
    浏览(29)
  • 自建K8S一年多没用,忽然想使用下。kubelet启动失败,报错:main process exited, code=exited, status=255/n/a

    通过system status kubelet 查看报错,基本没有什么有效信息,所以使用 就可以看到以下报错:Jan 16 20:49:17 master kubelet[3824]: I0116 20:49:17.402577    3824 server.go:425] Version: v1.15.0 Jan 16 20:49:17 master kubelet[3824]: I0116 20:49:17.402770    3824 plugins.go:103] No cloud provider specified. Jan 16 20:49:17 master k

    2024年01月24日
    浏览(39)
  • Prometheus+Grafana监控K8S集群(基于K8S环境部署)

    1、服务器及K8S版本信息: IP地址 主机名称 角色 K8S版本 16.32.15.200 master-1 Master节点 v1.23.0 16.32.15.201 node-1 Node节点 v1.23.0 16.32.15.202 node-2 Node节点 v1.23.0 2、部署组件版本: 序号 名称 版本 作用 1 Prometheus v2.33.5 收集、存储和处理指标数据 2 Node_exporter v0.16.0 采集服务器指标,如CP

    2024年02月04日
    浏览(55)
  • 第26关 K8s日志收集揭秘:利用Log-pilot收集POD内业务日志文件

    ------ 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 OK,到目前为止,我们的服务顺利容器化并上了K8s,同时也能通过外部网络进行请求访问,相关的服务数据也能进行持久化存储了,那么接下来很关键的事情,就是怎么去收集服务产生的日志进行数据分析及

    2024年02月03日
    浏览(36)
  • 【K8S环境搭建】

    K8S环境搭建 [root@node2 ~]# yum install ntpdate -y 安装时间同步 [root@master ~]# ntpdate time.windows.com 开启时间同步 [root@node2 ~]# yum -y install ipset ipvsadm 安装ipset和ipsadm 关闭防火墙 systemctl disable firewalld systemctl stop firewalld 关闭selinux 临时禁用selinux setenforce 0 永久关闭 修改/etc/sysconfig/selinux文件

    2024年02月01日
    浏览(37)
  • 一.安装k8s环境

    默认3台服务器都执行 基础软件需要在三台服务器都执行  在这里,我们将向您介绍Docker的安装方法。但首先,我们需要先安装依赖包。您需要通过使用以下命令安装一些基本软件: yum install -y yum-utils device-mapper-persistent-data lvm2 然后,您可以使用以下命令来安装Docker: sudo

    2024年02月15日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包