开发者学堂课程【微服务实战-Service Mesh 与 Istio:Istio 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/620/detail/9434
Istio 介绍
内容介绍
一、Istio 的功能
二、Istio 的架构
三、Istio 的架构: Envoy
四、Istio 的架构:Mixer
五、Istio 的架构:Pilot
六、Istio 的架构: Citadel
七、Istio 的架构:Galley
八、Istio 的 github repo
九、Istio 的 API yamI格式
一、Istio 的功能
服务发现、负载均衡
故障恢复、指标收集和监控
A/B测试、灰度发布
限流、访问控制和端到端认证
二、Istio 的架构
数据平面:由一组以 sidecar 方式部署的智能代理(Envoy) 组成
控制平面:负责管理和配置代理控制平面中的Mixer:
实施策略和收集遥测数据
Istio 所独有
三、Istio 的架构: Envoy
lstio 使用 Envoy 代理的扩展版本
Envoy 提供许多内置功能:
动态服务发现
负载均衡
TLS 终止
HTTP/2 & gRPC 代理
熔断器
健康检查、基于百分比流量拆分的灰度发布
故障注入
丰富的度量指标
四、Istio 的架构:Mixer
负责执行访问控制和使用策略
从 Envoy 代理和其他服务收集遥测数据
插件模型,可抽象出基础设施后端的服务代理
五、Istio 的架构:Pilot
提供服务发现功能,
为智能路由和弹性(超时、重试、熔断器等)提供流量管理功能
将控制流量行为的高级路由规则转换为特定于Envoy的配置
六、Istio 的架构: Citadel
身份和凭证管理
微服务间和最终用户身份验证
升级服务网格中未加密的流量
支持基于角色的访问控制(RBAC)
七、Istio 的架构:Galley
Istio 的 API Server
验证用户编写的 Istio API 配置
将接管 Istio 获取配置、处理和分配组件
八、Istio 的 github repo
https://github.com/istio/istio代码库,不需要改代码
Istio
An open platform to connect, manage, and secure microservices.
For in-depth information about how to use Istio, visit istio.io
To ask questions and get assistance from our community, visit discuss.istio.io. To learn how to participate in our overall community, visit our comnpunity page
In this README:
Introduction
· Repositories
Issue management
In addition, here are some other documents you may wish to read:
Istio Community - describes how to get involved and contribute to the Istio project
Istio Developer's Guide - explains how to set up and use an Istio development environment. Project Conventions - describes the conventions we use within the code base
Creating Fast and Lean Code - performance-oriented advice and guidelines for the code base
You'll find many other useful documents on our Wiki.
九、Istio 的 API yamI 格式
以.yaml 或.yml 为文件后缀
key: value 形式,大小写分别
不能用 Tab, 要用空格
apiVersion: networking. istio. io/v1a lpha3kind: Virtua lService
metadata :
name :reviews
spec:
hosts:eviews
http:
match:
headers :
cookie:
regex: "n(.*?;)?(user=jason)(;.*)?$"
route:
dest ination:
host:reviews
subset: v2
route:
dest ination:
host:reviews ,
subset: v1