云原生是什么?和Docker、K8s是什么关系?又带来了何种影响?希望这篇文章给自己及大家解点疑惑

这篇具有很好参考价值的文章主要介绍了云原生是什么?和Docker、K8s是什么关系?又带来了何种影响?希望这篇文章给自己及大家解点疑惑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 为什么要云原生?

现在容器化和云原生十分火爆,但如果要理解为什么这个技术在近几年突然爆火,身为传统的Springboot和Springcloud体系开发者都有很多困惑,怎么就突然这么火爆了呢?诸如我就产生了以下问题:

  1. 传统的springboot或springcloud体系和云原生对比起来有何差别?
  2. 传统的spring体系和云原生可以给开发者带来何种便利?
  3. 对接云原生具有何种代价?
  4. 使用云原生后业务系统使用MQ或Reids此类的中间件方式会有何种改变?
  5. 云原生能提供何种服务?
  6. 云原生对传统开发模式的对比?
  7. 云原生所说的DevOps和持续交付具体如何实现?
  8. Docker和K8S赋予了程序何种能力?又让程序付出了何种代价?
  9. 云原生对传统开发模式中的开发人员有何影响?
  10. 云原生和微服务的关系?
  11. 不使用云原生的开发模式和使用云原生的开发模式?
  12. 云原生和云计算的关系?

要解答这些疑问还是要了解清楚云原生是什么,以及其技术基础和应用场景到底是什么。

2. 简单了解云原生的技术基础

2.1 云计算

云计算本质是一个可以提供IaaS、PaaS和Saas三种不同服务的产品。

  • SaaS:提供固定的功能,客户可根据需要的功能购买对应的产品,用户无需开发,直接付费使用;
  • PasS:为程序运行时提供用于开发、测试和管理的应用程序,用户需要自行开发程序,但对程序的各种管理软件和资源都无需关心;
  • IaaS:把IT的基础资源(如服务器、存储和网络)封装为产品,用户需要自行开发、维护和管理整个开发周期,包括一些公共框架。

2.2 云原生

云原生官方的定义:基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。

直白的说云原生就是制定一系列的应用规范,并将其集成封装后的云计算PaaS产品。

云原生带来的好处:

  1. 便利性:公司自己购买维护机器和聘请技术人员开发维护技术框架都是成本,而云原生则是自己承担服务器资源和框架维护的成本,对外公共开放其使用权限,以避免处处都需要维护服务器和框架;
  2. 低成本:中小型公司或技术薄弱的公司要想立马搭建起一套高可用高并发的微服务体系, 可直接购买云原生的服务支持;
  3. 可靠性:云原生的产品基本都有大公司支持,稳定性、性能和容灾等各种指标都能兼顾;
  4. 伸缩性:可针对不同的业务阶段进行性能伸缩,而无需考虑机器应该如何处置;

与Springcloud的差别:Springcloud体系要求开发者自己对技术较为熟悉,与Java程序绑定,且技术维护都需要自己做;而云原生则是为开发者提供基础资源,开发者只需要会使用即可,而无需自己再去维护基础资源;因此使用云原生,开发者就可以把更多的精力放到如何使用这些技术完成业务需求,而无需关心基础设施是否安全可靠稳定。

2.3 Docker

Docker是运行在Linux的开源的应用容器引擎程序,基于Go语言并遵从Apache2.0协议开源。

其最大优势就是只要目标方提供了容器的镜像,就可以直接拉取镜像运行,诸如MySQL、nginx和JDK这些开源资源都可以直接拉取其镜像。

当拉取了镜像后需要使用Dockerfile文本文件来定制镜像,如使用哪个镜像去运行镜像支持的可执行文件。

一台机器可运行多个镜像文件,即多个容器。

2.4 K8s

Kubernetes是一个用于自动化部署、扩展和管理容器化应用的开源容器编排工具,Docker官方的Docker Swarm是其竞争对手,其通过在集群上形成一个抽象层来部署和管理容器中的应用程序。

K8s的作用:

  1. 控制和管理应用程序对资源的使用;
  2. 自动负载均衡多个实例之间的请求;
  3. 如果主机资源耗尽或主机死机,将应用程序实例从一台主机迁移到另一台主机上;
  4. 当有新的主机加入集群时,新增额外可被自动使用的资源。

K8s被CNCF基金会倡议的项目,增长迅速,其优势在于:

  1. 可移植性和灵活性:K8s可在各种基础设施和环境设置下运行,其它的容器编排器则做不到;
  2. 开源支持:CNCF负责管理K8s,是一个完全开源、由社区驱动的项目,没有一家公司可以控制平台框架的发展方向,由很多大公司背书,因此不用担心稳定性和维护性;
  3. 多云兼容性:K8s能够轻松的扩展到另一个云,简单来说就是跨机房;

K8s的组件:

  • K8s使用Etcd来完成整个集群的服务注册与发现,Etcd是由golang语言编写的,在集群中每个机器都被称为节点;
  • K8s通过控制平面来管理不同节点,使用HTTP发送接收命令或连接到系统运行命令行脚本,控制了K8s与应用程序的交互;
  • K8s的Pod是K8s管理容器集的最小单位,每个Pod中都有被分配的单独IP地址,在Pod中的容器内存和存储资源都是共享的,Pod也可以只有一个容器;
  • Kubelet被用来跟踪Pod及其容器的运行状态,检查Pod规则并确认Pod是否健康;
  • Kube代理被用来实现网络代理和负载均衡,充当在每个节点和API服务器之间的连接,在每个节点上都会运行,外部和内部请求到Pod都会经过Kube代理;

3. 关联解疑

3.1 Docker和K8s的关系

到这里可以很好的理解Docker和K8s的关系了,Docker是运行在机器上的容器引擎,可以看成是虚拟机,但性能比虚拟机强很多,直接对接底层Kernel核心。Docker能够让一台机器可以创建多个容器以运行多个应用程序。而由于Docker的容器编排器Swarm由于易用性不能满足要求,被开源框架K8s所代替,因此K8s成为了运行在Docker容器上的最主流容器编排器,用来支持在容器上快速部署管理应用程序。

3.2 容器化的爆火

一个技术的兴起爆火原因是多方面的,但云原生和容器化的流行个人认为主要还是有两个原因:企业数字化转型大背景和云计算提供者的降本增效

3.2.1 企业数字化转型大背景

现在每个企业都想进行数字化转型,特别是传统行业,在看到新兴互联网行业依靠各种软件系统混的风生水起,谁不想来掺和一脚?况且数字化管理是真真切切可以提高企业的管理能力和效率,所以企业数字化转型对于企业的发展来说是必要的。

此时企业有两种选择,一是购买SaaS产品服务,但自定义产品的代价十分高昂且效率无法保证;二是自己成立一个业务开发组,所有需求从内部孵化落地。第二个方案现实问题就是传统企业中程序员的占比是非常小的,如果靠自己从无到有做数字化转型,招聘大量的程序员且不说,各种机房服务器的搭建都是一笔巨大的开销。此时就产生了一个很大的需求缺口:很多企业都需要PaaS服务。

这些企业只需要购买基础的服务器和设备资源,并招一些相对资深程序员更加便宜的初中级程序员,就能开始开发自己系统和产品。对于大部分企业而言这相对于从头到尾自己搭建机房性价比要高很多。

3.2.2 云计算企业降本增效缺口

市场存在巨大的PaaS需求缺口,云计算火爆是必然的事情。但对于云计算企业而言,如何以客户相对满意的价格提供服务是最重要的事情,如果还是和以前一样,以机房服务器租赁的方式提供云计算服务,大部分企业还是无法接收这种成本。

对于云计算企业而言,巴不得可以一台服务器可以服务N家企业,这样自己的收益才会最高。

3.2.3 Docker和K8s火爆的必然性

云计算企业要求一台服务器可以服务N家企业来提高自己的收益,而Docker和K8s正是为这种场景而诞生的,因此众多云计算企业选择Docker和K8s来实现PaaS服务就是很理所当然的事情了。

在此基础上CNCF提出了云原生的规范,为提供云计算PaaS服务的企业提供了规范和背书,在这种背景下,容器化想不火都由不得它了。

3.2.4 容器化带来的影响

私以为容器化带来的最大影响就是业务型开发需求进一步扩张,而各种中间件维护开发工程师需求量会被压缩。

当越来越多的企业加入到云原生,一起平摊服务器成本后,越来越多的技术维护将会慢慢淡出我们的视野。以最常见且重要的负载均衡来说,阿里云提供SLB服务,可以实现内网调用和外网调用的负载均衡,这样我们只需要知道对应的域名直接调用即可,无需再考虑使用负载均衡中间件来控制流量。

这种变化会导致一个趋势:

  1. 业务开发将占绝对主流:业务开发只需要会熟练使用各种中间件来解决业务问题即可;
  2. 维护中间件开发的技术大佬生存空间被挤压:由于大部分企业都不再需要维护中间件,出了问题后直接找云服务商,中间件开发的大佬岗位将会减少。

但毕竟经过这么多年的发展,技术存量摆在那里,岗位需求一定是会有的,只是岗位增量会逐步减少。

而对于业务开发来说,这种趋势虽然不再要求精通各种中间件管理知识,但对中间件的使用要求将会越来越高,毕竟要关注的技术点变少,那就只能精通剩余的技术了。文章来源地址https://www.toymoban.com/news/detail-465280.html

到了这里,关于云原生是什么?和Docker、K8s是什么关系?又带来了何种影响?希望这篇文章给自己及大家解点疑惑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架构、Master节点 Node节点 K8S架构图

    一、docker的问世         在LXC(Linux container)Linux容器虚拟技术出现之前,业界网红是虚拟机。虚拟机技术的代表,是VMWare和OpenStack。 虚拟机是什么?         虚拟机其实就是 在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。

    2024年03月26日
    浏览(69)
  • 【云原生-K8s】kubeadm搭建安装k8s集群v1.25版本完整教程【docker、网络插件calico、中间层cri-docker】

    从 k8s 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作为k8s的容器运行时了,即从k8s v1.24开始不再使用docker了 但是如果想继续使用docker的话,可以在kubelet和docker之间加上一个中间层cri-docker。

    2024年02月03日
    浏览(44)
  • k8s中 RBAC中,clusterrole,serviceaccount , rolebinding 是什么关系谁先谁后

    在Kubernetes的RBAC(Role-Based Access Control)中,ClusterRole、ServiceAccount和RoleBinding是三个关键的组件,它们之间的关系如下: ClusterRole:ClusterRole 是一种全局的权限规则,它定义了一组权限,可以在整个集群中使用。ClusterRole 中包括了哪些操作可以执行以及访问哪些资源的权限。

    2024年02月05日
    浏览(52)
  • golang/云原生/Docker/DevOps/K8S/持续 集成/分布式/etcd 教程

    3-6个月帮助学员掌握golang后端开发岗位必备技术点 教程时长: 150+小时 五大核心专栏,原理+源码+案例分析+项目实战直击工作岗位 golang:解决go语言编程问题 工程组件:解决golang工程化问题 分布式中间件:解决技术栈单一及分布式开发问题 云原生:解决云原生分布式部署及监

    2024年02月07日
    浏览(76)
  • K8s为什么要放弃Docker

    公司定期分享整理的资料 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation 2020 年,k8s 1.20 终于正式向 Docker “宣战”:kubelet将弃用 Docker 支持,并将在未来的版本中完全移除。 但由于 Docker 几乎已经成为容器技术的代名词,而且 K8s 已经使用 Docker 多年,

    2024年02月06日
    浏览(62)
  • 云原生管理工具dashboard--Kube Sphere(k8s)和Portainer(Docker)安装

    安装 推荐直接使用All in One 安装模式安装,最为简单,同时安装kube Sphere也支持同时安装好k8s的环境 官方安装网址如下,写的很详细,也贴心的准备了中国地区安装的网络问题应对方式 在 Linux 上以 All-in-One 模式安装 KubeSphere 安装 建议直接以docker形式安装,命令如下 -d : 表示

    2024年01月22日
    浏览(42)
  • K8s 为什么要弃用 Docker

    最近在学习容器技术的过程中,看到有关于Kubernetes“弃用 Docker”的事情,担心现在学 Docker 是否还有价值,是否现在就应该切换到 containerd 或者是其他 runtime。 随着深入了解,这些疑虑的确是有些道理。三年前,Kubernetes 放出消息要“弃用 Docker”的时候,确确实实在 Kuberne

    2024年02月12日
    浏览(55)
  • 【容器架构】你知道有 Docker 为什么还要 K8s 吗?

    👉 博主介绍 : 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO TOP红人 Java知识图谱点击链接: 体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收藏关注下 , 不然下次找不到哟

    2024年02月16日
    浏览(73)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(67)
  • 【K8S 云原生】K8S的对外服务—ingress

    目录 一、K8S的Service 1、Service的作用 2、Service类型: 二、ingress 1、ingress的组成: 2、ingress资源的定义项: 三、nginx-ingress-controller暴露服务端的方式 1、Deployment+LoadBalancer模式: 1、工作流程图: 2、Daemonset+hostnetwork+nodeSelector模式: 1、工作流程图 2、实验: 3、deployment+NodePort

    2024年01月18日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包