快速掌握服务网格系列二:云原生、K8S、服务网格(Service Mesh)及微服务之间的关系

首先看下CNCF对云原生的定义:

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

云原生技术可以让你的组织构建和运行可扩展的应用,并且不限于公有云、私有云、混合云环境。容器、Service Mesh(服务网格)[1]、微服务、不变的基础设施和声明式API(k8s)共同组成了云原生。

Service Mesh(服务网格) 、声明式API(k8s)、微服务是云原生的组成部分:

<img src="https://pic1.zhimg.com/v2-d1dc6e9712977576f0affe34c000dae4_b.jpg" data-caption="" data-size="normal" data-rawwidth="796" data-rawheight="762" class="origin_image zh-lightbox-thumb" width="796" data-original="https://pic1.zhimg.com/v2-d1dc6e9712977576f0affe34c000dae4_r.jpg"/>

声明式API(k8s)

“声明式 API”的核心原理,就是当用户向 Kubernetes 提交了一个 API 对象的描述之后,Kubernetes 会负责为你保证整个集群里各项资源的状态,都与你的 API 对象描述的需求相一致。更重要的是,这个保证是一项“无条件的”、“没有期限”的承诺:对于每个保存在 etcd 里的 API 对象,Kubernetes 都通过启动一种叫做“控制器模式”(Controller Pattern)的无限循环,不断检查,然后调谐,最后确保整个集群的状态与这个 API 对象的描述一致。

简单理解就是对象的声明与对象的创建相解耦,在普通程序中创建对象需要向操作系统申请资源,相似的,在容器云平台上创建对象,需要向k8s申请资源。但k8s更进一步的是,你只需要提交一个申请单,然后由k8s系统完成对象的创建。

再来看看云原生的提出者Pivotal对云原生的定义:

Cloud native is an approach to building and running applications that exploits the advantages of the cloud computing delivery model. Cloud native is about how applications are created and deployed, not where. While today public cloud impacts the thinking about infrastructure investment for virtually every industry, a cloud-like delivery model isn’t exclusive to public environments. It‘s appropriate for both public and private clouds. Most important is the ability to offer nearly limitless computing power, on-demand, along with modern data and application services for developers.

云原生是一种利用云计算交付模型的优势来构建和运行应用程序的方法。云原生是关于如何创建和部署应用程序,而不是在何处部署。虽然如今,公共云影响了几乎所有行业的基础设施建设思维,但类似云的交付模式并不是公共环境独有的。它适用于公共云和私有云。最重要的是能够按需提供几乎无限的计算能力,以及为开发人员提供现代数据和应用程序服务。

Pivotal认为云原生四个关键要素为:DEVOPS、CICD、微服务、容器化

提到微服务就会想到微服务之间的治理也就是服务网格(Service Mesh),而容器化则会想到解决容器编排与调度的K8S。

<img src="https://pic4.zhimg.com/v2-200bc439bc1202de5dd363e21de737a7_b.jpg" data-size="normal" data-rawwidth="616" data-rawheight="608" class="origin_image zh-lightbox-thumb" width="616" data-original="https://pic4.zhimg.com/v2-200bc439bc1202de5dd363e21de737a7_r.jpg"/>

云原生四个关键要素DEVOPS、CICD、微服务、容器化

那么服务网格(Service Mesh )与K8S及微服务之间的关系是怎样的呢?大家可以先看下图。

<img src="https://pic4.zhimg.com/v2-5a1707063e1bd1f7af9dea4147736acb_b.jpg" data-size="normal" data-rawwidth="720" data-rawheight="474" class="origin_image zh-lightbox-thumb" width="720" data-original="https://pic4.zhimg.com/v2-5a1707063e1bd1f7af9dea4147736acb_r.jpg"/>

K8S与Service Mesh的关系

其实服务网格是以K8S为基础,为应用层(微服务)提供服务的,他们分别解决以下问题。

Kubernetes

• 解决容器编排与调度问题

• 本质上是通过调度器管理应用的生命周期

给予 Service Mesh 支持和帮助

Service Mesh

• 解决服务间网络通信问题

• 本质上是通过代理(side car)管理服务通信

• 是对 Kubernetes 网络功能方面的扩展和延伸

通过上面的讲述,大家是否清楚了云原生、K8S、服务网格(Service Mesh)及微服务之间的关系?有问题请留言,共同研究学习。

参考

  1. 快速掌握服务网格系列二:云原生、K8S、服务网格(Service Mesh)及微服务之间的关系

    快速掌握服务网格系列二:云原生、K8S、服务网格(Service Mesh)及微服务之间的关系

快速掌握服务网格系列二:云原生、K8S、服务网格(Service Mesh)及微服务之间的关系的更多相关文章

  1. 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发

    <ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...

  2. 基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 前言:关于什么是容器微服务PaaS和容器微服务PaaS的 ...

  3. 微服务之旅:从Netflix OSS到 Istio Service Mesh

    在这篇文章中,我们从Netflix开始,通过Envoy和Istio的崛起,快速浏览微服务的历史. 微服务是具有边界上下文的松散耦合服务,使您能够独立开发,部署和扩展服务.它还可以定义为构建独立开发和部 ...

  4. Istio Service Mash管理微服务

    Istio Service Mash管理微服务 今天的文章通过Istio开源项目展示如何为Kubernetes管理的微服务提供可见性,弹性,安全性和控制. 服务是现代软件体系结构的核心.比起复杂庞大的 ...

  5. 华为云MVP:来自工业制造领域的微服务与云平台实践

    [摘要] 首先,和大家先聊聊的是为什么微服务.DevOps和云计算会在各个产业大行其道;其次,再谈谈微服务架构设计有那些自己独特的设计思想,和传统的SOA有什么区别;最后,我们再一起看一看在工业领域云 ...

  6. 【解构云原生】初识Kubernetes Service

    编者按:云原生是网易杭州研究院(网易杭研)奉行的核心技术方向之一,开源容器平台Kubernetes作为云原生产业技术标准.云原生生态基石,在设计上不可避免有其复杂性,Kubernetes系列文章基于网 ...

  7. 云原生K8S精选的分布式可靠的键值存储etcd原理和实践

    @ 目录 概述 定义 应用场景 特性 为何使用etcd 术语 架构 原理 读操作 写操作 日志复制 部署 单示例快速部署 多实例集群部署 静态 etcd 动态发现 常见命令 概述 定义 etcd 官网 ...

  8. 【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发

    摘要:Serverless.微服务,这些新技术和IoT有什么关系?纵观IoT行业的发展,云服务又扮演了什么角色? IoT并不是一个新名词.新技术,很长一段时间,它甚至给人一种"下工地&quo ...

  9. 【十次方微服务后台开发】Day02:加密与JWT鉴权、微服务注册中心、配置中心、熔断器、网关、消息总线、部署与持续集成、容器管理与监控Rancher、influxDB、grafana

    一.密码加密与微服务鉴权JWT 1.BCrypt密码加密 Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用B ...

  10. 【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍

    〇.概述 一.微服务架构与Spring Cloud (一)概念 不同说法:细粒度的.清凉组件化的小型SOA(面向服务架构) 统一说法:小型应用程序(服务组件),使用轻量级设计方法和HTTP协议通信 理 ...

随机推荐

  1. 秋招还没Offer怎么办?

    如果你是双非院线.没有实习经历.没有出众的技术(算法没刷一千道,也没做过 Spring Cloud 项目).现在还没有面试(或只有少量的面试).并且目前还没有 Offer,那么恭喜你,你和目前大部分同 ...

  2. P9140 [THUPC 2023 初赛] 背包

    prologue 这很难评(调了我 1h,我都想紫砂了. 还是典型得不重构就看不见系列. analysis 如果我们还是一个正常人,那么我们大体上是能看到题目的加粗字,这个格式很明显符合我们的同余最短 ...

  3. Angular2 通过自定义指令限制输入框输入类型

    ** 温馨提示:如需转载本文,请注明内容出处.** 本文链接:https://www.cnblogs.com/grom/p/16814577.html 在input控件中,使用type="n ...

  4. 练习回—编译安装nginx

    练习回 练习,编译安装nginx. 1.yum安装依赖环境 yum -y install pcre-devel zlib-devel gcc gcc-c++ make 2."下载" ...

  5. 前端JavaScript编码规范 和react编码规范

    JavaScript编码规范 点击链接查看:https://github.com/ecomfe/spec/blob/master/javascript-style-guide.md 前端React编码 ...

  6. 总结(3)--- 知识总结(内存管理、线程阻塞、GIL锁)

    一.Python中是如何进行内存管理的? 垃圾回收:Python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值.对Python而言,对象的类型和内存都是在运行时确定的 ...

  7. Linux MIPI 调试中常见的问题

    一.概述 做嵌入式工作的小伙伴知道,有时候程序编写没有调试过程中费时,之间笔记里有 MIPI 摄像头驱动开发的过程,有需要的小伙伴可以参考:Linux RN6752 驱动编写. 而我也是第一次琢磨 M ...

  8. js实现在报表参数界面获取body中控件的值

    要在报表参数界面获取body中控件的值,你可以使用JavaScript来实现.下面是一个详细的介绍: 1. DOM(文档对象模型): - DOM是用于操作HTML文档的API,它允许你通过JavaSc ...

  9. java-图片添加水印

    前言:    需求:需要在图片中添加水印,防止盗用   优缺点:     优点:保护版权,防止盗用     缺点 可能会影响图片的视觉效果:如果水印过大或过醒目,可能会影响图片的视觉效果. 可能会增加 ...

  10. 使用javafx,结合讯飞ai,搞了个ai聊天系统

    第一步:先在讯飞ai那边获取接入的api 点进去,然后出现这个页面: 没有的话,就点击免费试用,有了的话,就点击服务管理: 用v2.0的和用3的都行,不过我推荐用2.0版本 文档位置:星火认知大模型W ...