二 Istio设计的核心原则
Istio架构关键目标
- 最大化透明度:Istio将自身自动注入到服务间所有的网络路径中。Istio使用sidecar代理来捕获流量,并且在尽可能的地方自动编程网络层,通过代理来路由流量,无需改动应用程序代码。在K8s中,代理注入到POD中,并可以修改路由规则,就可以调节流量了。
- 增量:
- 可移植性:
- 策略一致性:
流量管理:
Pilot和Envoy: Istio流量管理的核心组件是Pilot,它管理和部署所有的Envoy代理实例。它允许指定在Envoy代理之间使用什么样的路由流量规则,并配置故障恢复功能,如超时,重试和熔断器。通过发现服务让Envoy了解网格中的其他实例。
每个Envoy实例维护负载均衡信息,负载均衡信息是从Pilot获得的,以及负载均衡池中其他实例的定期健康检查。从而允许在目标实例之间智能分配流量,同时遵循指定的路由规则。
Istio的流量管理模型,解耦流量和基础设施扩展,运维人员通过Pilot指定他们希望遵循的流量规则。
A/B测试的动态请求路由,超时,重试和熔断器处理故障恢复,故障注入测试服务之间故障恢复策略。
Pilot维护了网格中服务的规范表示
Envoy sidecar/代理拦截并转发客户端和服务器之间所有的请求/响应。
运维人员使用Pilot指定路由规则,Envoy根据这些规则动态的确定服务版本的选择。路由规则允许Envoy根据诸如header,与源/目的相关联的标签和/或分配给每个版本的权重的标准来选择版本。
Ingress和Egress:
发现和负载均衡:
服务注册:服务新实例自动注册到服务注册表,自动删除不健康的实例。
服务发现:Envoy实例执行服务发现。
网格中的服务使用DNS名称访问彼此。服务的所有HTTP流量都会通过Envoy自动重新路由。Envoy在负载均衡池中的实例之间分发流量。除了负载均衡外,Envoy还会定期检查池中每个实例的运行状况。Envoy会根据健康检查API调用的失败率将实例分为健康和不健康。不健康的会从负载均衡池中弹出。健康的还会被放回来。
处理故障:
- Envoy提供了开箱即用的故障恢复功能。
- 超时。
- 超时预算有限重试以及重试之间的可变抖动。
- 并发连接数和上游服务请求数限制。
- 对负载均衡池的每个成员进行健康检查。
- 细粒度熔断器
故障注入:
二 Istio设计的核心原则的更多相关文章
- 20145215&20145307《信息安全系统设计基础》实验二 固件设计
20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...
- 20145218&20145240 《信息安全系统设计基础》实验二 固件设计
20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...
- 20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计
20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 l ...
- [原创].NET 分布式架构开发实战之二 草稿设计
原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计 前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下 ...
- 【HELLO WAKA】WAKA iOS客户端 之二 架构设计与实现篇
上一篇主要做了MAKA APP的需求分析,功能结构分解,架构分析,API分析,API数据结构分析. 这篇主要讲如何从零做iOS应用架构. 全系列 [HELLO WAKA]WAKA iOS客户端 之一 ...
- 《c# 实现p2p文件分享与传输系统》 二、 设计
c#实现P2P文件分享与传输系统 二.设计 在上一篇文章中,介绍了P2P网络的常用模型,并确定了EasyP2P系统的框架,本文将就此设计完成它的主要结构和运作流程. 1. 首先是Tracker Ser ...
- 《c# 实现p2p文件分享与传输系统》 二、 设计 - 续(NAT穿透)
c#实现P2P文件分享与传输系统 二.设计 - 续(NAT穿透) 首先要抱歉,因为这些日子较忙,没有写文章,这个系列拖了很久,现在开始继续. 上一篇文章介绍了p2p系统Tracker Server和 ...
- Istio的流量管理(实操二)(istio 系列四)
Istio的流量管理(实操二)(istio 系列四) 涵盖官方文档Traffic Management章节中的inrgess部分. 目录 Istio的流量管理(实操二)(istio 系列四) Ingr ...
- Java连接Oracle数据库开发银行管理系统【二、设计篇】
一.总体分析 此系统的实现并不难,但是如何更好的设计出实现方式还是需要更深入的分析,例如:如果再增加其他功能,是不是需要变动的 代码很少,只是直接再增加一点功能就可以了呢?如果使用的不是Ora ...
随机推荐
- constexpr与指针
一. 常量表达式:是指值不会改变并且在编译过程就能得到的计算结果的表达式. 定义常量表达式变量: constexpr 变量类型 变量名: 例如: constexpr int mf=20://///20 ...
- SwfUpload文件上传
SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得到官网上看它的文档,真是太烦了.所以 ...
- HDFS-查看文件属性+文件名称过滤
package com.zhen.hdfs; import java.io.IOException; import java.io.OutputStream; import java.net.URI; ...
- Codeforces Round #273 (Div. 2) D. Red-Green Towers 背包dp
D. Red-Green Towers time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Python之flask总结
一.flask a.Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收htt ...
- R语言入门基础
教程:常用运算函数.对一般数据进行运算的常用函数: 1.round() #四舍五入 例:x <- c(3.1416, 15.377, 269.7) round(x, 0) #保留整数位 roun ...
- R文件报错:cannot resolve symbol ‘R’
今天仿照别人项目,因为不太熟悉Androidstudio,所以就照着他项目结构走,结果包名跟他的不一样,项目一直报标题这个错误,网上百度了很多也没用,不过先把网上的解决方案copy一下 请注意 ① E ...
- EF切换到Mysql数据库,更改web.config
1)引用: MySql.Data.dll,MySql.Data.Entity.dll,MySql.Data.Entity.EF6.dll 2)添加: <system.data> <D ...
- Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构&Hadoop云服务之战:微软vs.亚马逊
http://s3tools.org/s3cmd Amazon Elastic MapReduce (Amazon EMR)简介 Amazon Elastic MapReduce (Amazon EM ...
- java 简单解析wsdl
static void resolve(String wsdl) throws Exception { DocumentBuilderFactory factory = DocumentBuilder ...