快速掌握服务网格系列二:云原生、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. Java虚拟机(JVM):第二幕:自动内存管理 - Java内存区域与内存溢出异常

    前言:Java与C++之间有一堵高墙,主要是有内存动态分配和垃圾收集技术组成的.墙外的人想要进来,墙内的人想要出去. 一.运行时数据区域 JVM在执行Java程序时,会将其管理的内存划分为若干个不同的 ...

  2. DB22

    IBM官方网站提供了DB2 Express-C版本的软件免费下载: 下载地址 : http://www.ibm.com/developerworks/cn/downloads/im/udbexp/

  3. js数据结构--栈

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  4. camerabin error:"Internal data stream error,使用QT打开MIPI摄像头

    使用QT自带的QCamera打开MIPI摄像头 遇到:camerabin error:"Internal data stream error 降低分辨率为640*480 TRANSLATE ...

  5. centOS7 防火墙基本操作

    一.防火墙的开启.关闭.禁用命令 (1)设置开机启用防火墙:systemctl enable firewalld.service (2)设置开机禁用防火墙:systemctl disable fire ...

  6. [Python急救站课程]太阳花的绘制

    太阳花的绘制 from turtle import * color('red', 'yellow') # 分别定义填充颜色 begin_fill() while True: forward(200) ...

  7. Apache Hudi Timeline:支持 ACID 事务的基础

    Apache Hudi 维护在给定表上执行的所有操作的Timeline(时间线),以支持以符合 ACID 的方式高效检索读取查询的数据. 在写入和表服务期间也会不断查阅时间线,这是表正常运行的关键. ...

  8. CoreFX中Dictionary<TKey, TValue>的源码解读

    无论是实际的项目中,还是在我们学习的过程中,都会重点的应用到Dictionary<TKey, TValue>这个存储类型.每次对Dictionary<TKey, TValue> ...

  9. Pandas 分组聚合操作详解

    Pandas 是 Python 中用于数据分析的重要工具,它提供了丰富的数据操作方法.在数据分析过程中,经常需要对数据进行分组聚合操作.本文将介绍 Pandas 中的数据分组方法以及不同的聚合操作,并 ...

  10. 从零开始学习Python

    从零开始学习Python是一个令人兴奋和有趣的过程.无论你是完全没有编程经验,还是已经熟悉其他编程语言,Python都可以成为你迈向程序员之路的理想起点. 首先,在开始学习之前,请确保在计算机上安装了 ...