zoukankan      html  css  js  c++  java
  • Istio读书笔记-02

    《Istio实战指南》 by 马若飞 2019年9月第1版

    书中的 Istio 为 1.1版

    ---

    索引

    核心控件:Envoy、Pilot、Mixer、Citadel、Galley

    主要功能:流量管理、策略和遥测、可视化、安全

    Istio追求尽可能的透明,通过 各种解耦设计 让系统对内对外都没有依赖,还提供 高度的扩展性。

    Istio 应用的增长和服务的增多,扩展策略系统 是 最主要的需求,以增量的方式进行扩展。

    数据平面、控制平面分离

    各个组件都成为插件

    开放和包容的设计思路

    核心控件:Envoy、Pilot、Mixer、Citadel、Galley

    1、Envoy

    Istio数据平面 就是 代理。

    Envoy作为 Sidecar代理。

    一个为面向服务的框架而设计的7层代理和 通信总线,基于C++11

    将流量行为和数据提取出来发送给Mixer组件。

    主要功能:

    http 7层路由

    grpc、http/2

    服务发现 和 动态配置

    健康检查

    高级负载均衡

    英文:n.  使节,使者; 代表;

    2、Pilot

    实现流量管理的核心组件。

    主要作用:配置和管理envoy代理。

    设置代理之间特定的流量规则,配置超时、重试、熔断等。

    流量行为的路由规则 转换为 envoy配置 广播到envoy

    把服务发现机制抽象出来 并转换成API分发给envoy

    主要任务:

    从平台(如K8S)获取服务信息,完成服务发现;

    获取istio的各项配置,转换成envoy代理可读的格式并分发。

    Rules API

    流量规则

    Envoy API

    动态更新LB 和 路由表的API

    3、Mixer

    主要功能:提供策略控制,并从envoy代理 收集 遥测数据。

    每次网络通信时,envoy代理 都会向 mixer发出 预检要求,用来监测调用者的合法性。

    调用后,envoy代理 会发送 遥测数据 提供mixer收集。

    一般情况下 Sidecar代理 会缓存数据。

    适配器 是 重要组成部分,插件模型。

    部分适配器API:日志后端、限额后端、授权后端、遥测后端

    自定义适配器

    4、Citadel

    与安全相关的组件,主要负责 密钥和证书管理。

    提供 服务间和终端用户的身份认证,

    加密服务网格中的流量。

    英文:n.  城堡,要塞; 大本营,根据地,避难所; (军舰上的)炮廓;

    5、Galley

    2019年3月发布的1.1版本中。

    istio主要的 配置管理组件,负责 配置的获取、处理和分发。

    MCP(Mesh Configuration Protocol,网格配置协议)

    英文:n.  单层甲板大帆船; 军舰舰长用的大划艇; (船舰,飞机上的)厨房; 活版盘,长条校样;

    ---

    主要功能:流量管理、策略和遥测、可视化、安全

    1、流量管理

    服务间通信》流量管理

    金丝雀发布

    传统:LB、Nginx、权重、对流量的管理和基础设施绑定到一起、难以维护

    istio:轻松实现 各种维度的流量控制

    Pilot + Envoy组件实现:将流量 和 基础设施解耦

    pilot配置规则

    envoy按照规则执行各种流量管理功能

    功能:动态请求路由、超时、重试、熔断,故障注入-测试容错

    具体功能:请求路由、入口网关(Ingress)和出口网关(Egress)、服务发现和LB、故障处理、故障注入

    K8S提供了 服务注册的能力,Istio基于平台实现服务发现和LB。

    envoy一整套故障处理机制:超时、重试、限流、熔断(限额呢?)

    故障注入:在系统中认为地设置一些故障,来测试系统的稳定性和系统恢复的能力。Istio支持2种:延迟、中断。

    Envoy的LB池

    2、策略和遥测

    策略:限流(调用频率、速率限制)、白名单和黑名单

    Istio依靠 mixer完成。

    预先检查

    指标数据的采集和和汇总——遥测功能

    遥测:Telemetry,从远程设备中收集数据

    各种指标(metric)数据,BI数据分析

    Envoy代理 发送数据给 Mixer

    接入不同的后端设置作为适配器:日志分析系统、监控系统

    3、可视化

    没有完备的、可观察的监控系统就无法保障系统的稳定性。

    监控、追踪工具

    Grafana监控工具:Prometheus,指标数据

    Jaeger作为追踪系统:调用链跟踪

    Kibana系统:日志

    4、安全

    多个组件协同

    Ctadel:密钥和证书管理

    Pilot:授权策略等信息分发给Envoy代理

    Envoy:根据策略实现服务间安全通信

    Mixer:负责管理授权等工作

    认证:istio的2种类型的身份认证——传输认证(服务间)、来源认证(最终用户认证,验证终端用户或设备,JWT(JSON Web Token)实现)

    授权:沿用K8S的授权方式RBAC(Role-Based Access Control),不同级别的访问控制(命名空间级别、服务级别、方法级别)

    Pilot + Envoy代理

    ---

    Istio:

    开源的S.M.产品,提供了统一的方式 管理流量、设置安全和监控等服务治理的能力。

    数据平面、控制平面。各个组件充分解耦》优雅。第二代。

    注:

    书中第2章。

  • 相关阅读:
    将Java应用部署到SAP云平台neo环境的两种方式
    Java实现 LeetCode 524 通过删除字母匹配到字典里最长单词(又是一道语文题)
    Java实现 LeetCode 524 通过删除字母匹配到字典里最长单词(又是一道语文题)
    Java实现 LeetCode 523 连续的子数组和(ง •_•)ง
    Java实现 LeetCode 523 连续的子数组和(ง •_•)ง
    Java实现 LeetCode 523 连续的子数组和(ง •_•)ง
    Java实现 LeetCode 522 最长特殊序列 II(查找最长的非子序列的长度)
    Java实现 LeetCode 522 最长特殊序列 II(查找最长的非子序列的长度)
    Java实现 LeetCode 522 最长特殊序列 II(查找最长的非子序列的长度)
    Java实现 LeetCode 521 最长特殊序列 Ⅰ(出题人:“就是喜欢看你们不敢相信那么简单,又不敢提交的样子。”)...
  • 原文地址:https://www.cnblogs.com/luo630/p/15368380.html
Copyright © 2011-2022 走看看