Istio是一种支持可观察性、流量管理、安全性和策略的领先服务网格提供者(Simplify observability, traffic management, security, and policy with the leading service mesh.
)。
介绍
Istio 可以干什么:
- 使用 TLS 加密、强身份认证和授权的集群内服务到服务的安全通信
- 自动负载均衡的 HTTP, gRPC, WebSocket,和 TCP 流量
- 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制
- 一个可插入的策略层和配置 API,支持访问控制、速率限制和配额
- 对集群内的所有流量(包括集群入口和出口)进行自动度量、日志和跟踪
Istio 核心功能:
流量管理(Traffic Management)
- 通过 Istio 的规则配置(如超时、重试、断路器等)流量路由允许控制服务之间的流量和 API 调用流
- 支持 A/B 测试、金丝雀发布和灰度发布
安全(Security)
- Istio 提供了底层的安全通信通道,并管理服务通信的身份验证、授权和加密
可观察(Observability)
- Istio 提供健壮的跟踪、监视和日志功能
- 可以通过自定义仪表盘支持对所有服务的性能观测
可扩展性(Extensibility)
其他:
Istio 与 k8s 的关系
Istio 可以理解为 Kubernetes 的扩展(Extension),通过 CRD 控制器(声明式 API)实现
CRD
Istio 的流量控制策略和路由规则基于 kubernetes CRD实现,CRD group 如下:
Netwotk (nerworking.istio.io)
:流量治理,包括- VirtualService
- DestinationRule
- Gatevay
- ServiceEntry
- Sidecar
- EnvovFilter
- WorkloadEntry
- WorkloadGroup 等
Security (security.istio.io)
:网格安全,包括- AuthotizationPolicy
- PeerAuthentication
- RequestAuthentication 等
Telemetry (telemetry.istio.io)
:网格遥测,仅包括 TelemetyExtensions (extensions.istio.io)
:扩展机制,仅包括 WasmPlugin,参考:WebAssembly 使用介绍IstioOperator (install.istio.io)
:只有 IstioOperator CR
Envoy
Envoy 是轻量级网络代理的实现,按照工作位置,Envoy 在 Istio 中可以分为:
- SideCar-Envoy:东西向流量
- 借助 admission 自动注入到 Pod 中
- 所有的 Service 均转化为 envoy 的 vhost
- GateWay-Envoy: 南北向流量
- 组成:
- Ingress Gateway
- Egress Gateway
- 南北向流量有 GateWay 转为东西向流量
Envoy的组成包括:
Envoy 还可以集成 WASM API