快速掌握服务网格系列二:云原生、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. python setup.py sdist bdist_wheel

    # python setup.py sdist bdist_wheel# twine upload dist/*import ioimport osimport sysfrom shutil impo ...

  2. Android利用广播监听按下HOME和电源键

    package cc.testhome; import cc.testhome.HomeKeyObserver.OnHomeKeyListener; import cc.testhome.PowerK ...

  3. Android Studio里导入制作好的图片后,直接报错,图片名下方出现红色波浪线

    症状:Android Studio里导入制作好的图片后,直接报错,图片名下方出现红色波浪线. 比如:bk_Image_BackGround,报红 解决办法:如:bk_Image_BackGround, ...

  4. 一文读懂计算机底层网络原理,包括TCP、UDP、header,什么是包、帧、段等关键问题

    说到计算机网络原理,大家可能马上联想到,七层协议,传输层,链路层,三次握手四次挥手:前端的同学,还会想到我们用Crome F12的network里面的headers,状态码等.后端同学可能会联想到,抓 ...

  5. 【爬虫实战】用Python采集任意小红书笔记下的评论,爬了10000多条,含二级评论!

    目录 一.爬取目标 二.爬虫代码讲解 2.1 分析过程 2.2 爬虫代码 三.演示视频 一.爬取目标 您好!我是@马哥python说 ,一名10年程序猿. 我们继续分享Python爬虫的案例,今天爬取 ...

  6. @ApiImplicitParam dataType属性失效

    最近在弄swagger,老是碰到注解属性失效问题.百度看了一大推,都是说什么版本问题.但是都不是我遇到的情况,下面直接上我遇到的问题及答案   可以看到,我直接用Integer,或者int,去到swa ...

  7. 单元测试之Mockito+Junit使用和总结

    https://www.letianbiji.com/java-mockito/mockito-thenreturn.html Mockito 使用 thenReturn 设置方法的返回值 thenR ...

  8. 记录一次金仓V8R3数据库坏块处理过程、PostgreSQL数据库适用

    因数广政务云华为业务存储固件升级,导致数据库产生坏块,业务SQL查询报错如下: ERROR: missing chunk number 0 for toast value 38166585 in SY ...

  9. 微服务系列-使用WebFlux的WebClient进行Spring Boot 微服务通信示例

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 概述 在之前的教程中,我们看到了使用 RestTemplate 的 Spring Boot 微服务通信示例. 从 5.0 ...

  10. 【Javaweb】Servlet九 | base标签的作用【详细介绍】 Web路径相关知识

    base标签的作用 导言:路径跳转 <a href="/a/b/c.html">这是a下的b下的c</a></br> <a href=&q ...