我的编程空间,编程开发者的网络收藏夹
学习永远不晚

kubernetes中Istio的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

kubernetes中Istio的示例分析

这篇文章主要介绍kubernetes中Istio的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一:简介

随着微服务架构的普及,越来越多的应用已经拆分成了微服务的架构。而微服务架构落地的一个难点,就是如何让服务和服务之间进行稳定的通信。

部署微服务之后,如何做服务的负载均衡、容错性、服务监控、日志追踪以及熔断等功能都需要考虑周全。

为了让业务团队返璞归真,将所有精力集中在业务代码而不是配合微服务组件写大量非功能性需求的代码,Istio应运而生。

Istio是谷歌、IBM、Lyft等公司贡献的开源Service Mesh组件。它实现的目标就是让业务开发不再关注微服务之间如何调用、管理、监控等非功能性需求,而是让Istio来处理这些问题。Istio和Kubernetes有天然的支持。

Istio能轻松解决蓝绿发布和金丝雀发布的问题。

Istio能够做到:

HTTP、gRPC、WebSocket和TCP流量的自动负载均衡。

通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制。

支持访问控制、速率限制和配额的可拔插策略层和配置API。

自动指标、日志和集群内所有流量的跟踪,包括集群入口和出口。

通过集群中的服务之间的强身份断言来实现服务间的身份验证。

通过在整个环境中部署一个特殊的sidecar代理(辅助容器),您可以将Istio支持添加到服务中。安装了sidecar代理之后,(微)服务之间的所有网络通信都通过这个代理。此外,所有的网络通信都是使用Istio的控制平面功能进行配置和管理的。

二:主要功能

流量管理(Pilot)。控制服务之间的流量和API调用的流向,使得调用更灵活可靠,并使网络在恶劣情况下更加健壮。

可观察性。通过集成zipkin等服务,快速了解服务之间的依赖关系,以及它们之间流量的本质和流向,从而提供快速识别问题的能力。

策略执行(mixer)。将组织策略应用于服务之间的互动,确保访问策略得以执行,资源在消费者之间良好分配。策略的更改是通过配置网格而不是修改应用程序代码。

服务身份和安全(Istio-auth)。为网格中的服务提供可验证身份,并提供保护服务流量的能力,使其可以在不同可信度的网络上流转。

除此之外,Istio针对可扩展性进行了设计,以满足不同的部署需要:

平台支持。Istio旨在可以在各种环境中运行,包括跨云、预置环境、Kubernetes、Mesos等。最初专注于Kubernetes,但很快将支持其他环境。

集成和定制。策略执行组件可以扩展和定制,以便与现有的ACL、日志、监控、配额、审核等解决方案集成。

三:整体架构

kubernetes中Istio的示例分析

分为控制平面和数据平面两部分:

控制平面:Pilot, Mixer, Istio-Auth,分别对Istio中的服务做流量管理,策略配置,安全通信等规则配置 

数据平面:所有pod上的Envoy,负责所有规则的执行

主要构成组件:

Envoy:用于调解服务网格中所有服务的所有入站和出站流量。支持例如动态服务发现,负载均衡,故障注入、流量管理等功能。Envoy 以 sidecar 的方式部署在相关的服务的 Pod 中。

Pilot:Pilot 负责收集和验证配置并将其传播到各种 Istio组件。

Mixer:负责在服务网格上执行访问控制和使用策略,并从 Envoy 代理和其他服务收集遥测数据。

Istio-Auth:提供强大的服务间认证和终端用户认证。

四:Istio分布式追踪实现原理

Istio 服务网格的核心是 Envoy,是一个高性能的开源 L7 代理和通信总线。在 Istio 中,每个微服务都被注入了 Envoy Sidecar,该实例负责处理所有传入和传出的网络流量。因此,每个 Envoy Sidecar 都可以监控所有的服务间 API 调用,并记录每次服务调用所需的时间以及是否成功完成。

每当微服务发起外部调用时,客户端 Envoy 会创建一个新的 span。一个 span 代表一组微服务之间的完整交互过程,从请求者(客户端)发出请求开始到接收到服务方的响应为止。

在服务交互过程中,客户端会记录请求的发起时间和响应的接收时间,服务器端 Envoy 会记录请求的接收时间和响应的返回时间。

每个 Envoy 都会将自己的 span 视图信息发布到分布式追踪系统。当一个微服务处理请求时,可能需要调用其他微服务,从而导致因果关联的 span 的创建,形成完整的 trace。这就需要由应用来从请求消息中收集和转发下列 Header。

以上是“kubernetes中Istio的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

kubernetes中Istio的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

kubernetes中Istio的示例分析

这篇文章主要介绍kubernetes中Istio的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一:简介随着微服务架构的普及,越来越多的应用已经拆分成了微服务的架构。而微服务架构落地的一个难点,就是如何让服务
2023-06-04

kubernetes中Service的示例分析

这篇文章主要介绍了kubernetes中Service的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:体系结构图二:yaml举例apiVersion: v1kin
2023-06-04

kubernetes中云原生的示例分析

这篇文章主要为大家展示了“kubernetes中云原生的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“kubernetes中云原生的示例分析”这篇文章吧。一: 云原生云原生包含了一组应用
2023-06-04

Kubernetes架构的示例分析

这篇文章主要介绍Kubernetes架构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先,为什么要用Kubernetes? 使用一个工具先要梳理下使用这个工具的目标,我们不是为了工具而用工具。Kubern
2023-06-19

kubernetes概述的示例分析

这篇文章主要为大家展示了“kubernetes概述的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“kubernetes概述的示例分析”这篇文章吧。一:kubernetes集群的架构一个k
2023-06-04

kubernetes中Service Account与Secret的示例分析

这篇文章主要介绍kubernetes中Service Account与Secret的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一:Service Account与Secret数据结构二:Service A
2023-06-04

kubernetes中网络原理的示例分析

小编给大家分享一下kubernetes中网络原理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一:体系结构图二:说明1.网络命名空间处于不同命名空间的网
2023-06-04

kubernetes中网络模型的示例分析

这篇文章主要介绍kubernetes中网络模型的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Kubernetes从Docker默认的网络模型中独立出来形成一套自己的网络模型。模型的基础原则是:每个Pod都拥
2023-06-04

kubernetes原生pipeline的示例分析

kubernetes原生pipeline的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Tekton Pipeline,是一个k8s native的pipeline,
2023-06-05

kubernetes中kubelet运行机制的示例分析

这篇文章给大家分享的是有关kubernetes中kubelet运行机制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:简介在Kubernetes集群中,每个Node节点上都会启动一个Kubelet服务
2023-06-04

Kubernetes-dashboard+Heapster+InfluxDB+Grafana的示例分析

这篇文章将为大家详细讲解有关Kubernetes-dashboard+Heapster+InfluxDB+Grafana的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:前言1.kubernet
2023-06-04

kubernetes中控制器和标签的示例分析

小编给大家分享一下kubernetes中控制器和标签的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!01 k8s中的常用控制器 之前我们了解了Pod是k8s集群中调度的最小单元,Pod是由Pause容器+
2023-06-14

kubernetes中垃圾回收机制的示例分析

这篇文章主要介绍了kubernetes中垃圾回收机制的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:前言Kubernetes系统在长时间运行后,Kubernete
2023-06-04

Kubernetes Informer的示例分析是怎样的

Kubernetes Informer的示例分析是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。熟悉Kubernetes的小伙伴们想必会有一窥源码的动机,领略大师的设
2023-06-19

Kubernetes中存储卷PV和PVC的示例分析

这篇文章主要为大家展示了“Kubernetes中存储卷PV和PVC的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Kubernetes中存储卷PV和PVC的示例分析”这篇文章吧。一:体系
2023-06-04

kubernetes中负载均衡机制Ingress的示例分析

这篇文章将为大家详细讲解有关kubernetes中负载均衡机制Ingress的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:前言Kubernetes在设计之初就充分考虑了针对容器的服务发现与负
2023-06-04

kubernetes中Pod初始化容器之Init Container的示例分析

这篇文章主要介绍了kubernetes中Pod初始化容器之Init Container的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:前言在很多应用场景中,应用在
2023-06-04

ubuntu 16.04 下安装kubernetes 1.6 之kube-dns的示例分析

这篇文章将为大家详细讲解有关ubuntu 16.04 下安装kubernetes 1.6 之kube-dns的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1 前言 如果说service解决了p
2023-06-04

Node.js中的示例分析

小编给大家分享一下Node.js中的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Node.js 的非阻塞 I/OI/O 即 Input/Output,一
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录