# 服务治理Istio

# 1.1 概述

ServerMesh: “服务网格”,处理服务与服务之间通信的基础设施层,为复杂的云原生应用传递可靠的网络请求,服务网格是一个分布式的代理思想。传统的方式使用nginx等来做服务的代理、限流、白名单等事情

# 1.1.1 特点:

  • 治理能力独立(SideCar)
  • 无感知
  • 通信的基础设施
  • 解耦,代理应用完成服务发现、负载均衡、访问控制、服务发现、链路追踪、监控、重试等

# 1.1.2 功能

  • 连接:

    • 流量管理(丰富路由规则、重试、故障转移、故障流入等细粒度控制)
    • 负载均衡(支持http、gRPC、WebSocket、TCP)
    • 灰度发布
  • 安全

    • 认证
    • 鉴权(集群中实现安全的服务间通信)
  • 控制

    • 限流
    • ACL
    • 调试:流量镜像、故障流入
  • 观察

    • 监控
    • 调用链(对网格控制下流量自动化度量、日志记录、跟踪)

服务治理:流量管控、熔断限流、动态路由、链路追踪、负载均衡

部署运维:应用部署、弹性伸缩、资源共享、资源隔离

# 1.1.3 架构与组件

  • 数据平面:Proxy,负责高效转发与策略实现,由代理组成,代理微服务的网络通信,接收和实施Mixer的策略
  • 控制平面:管理和配置代理来路由流量。通过Mixer实施策略与收集SiderCar代理的数据
    • MIxer:适配组件,数据平面和控制平台通过它交互,为Proxy提供策略和数据上报
    • Piolot:策略配置组件,为Proxy提供服务发现,智能路由,错误处理等
    • Citadel(si·tuh·del):安全组件,提供证书生成下发,加密通信、访问控制
    • Galley:配置管理、验证和分发

Istio (opens new window) 1.5 版本中,控制平面由原来分散的、独立部署的几个组件整合为一个单体结构 istiod,变成了一个单进程、多模块的组织形态

架构演进图

istio-arch-evolution

1.5后最新的架构图

istio-mesh-arch

# 1.1.4 配置资源

  • VirtualService:服务请求路由规则
  • DestinationRule:目标服务的负载均衡、服务发现、故障处理和故障流入功能
  • Gateway:外界服务网格内的服务
  • ServiceEntry:服务网格内的服务访问外界
上次更新: : 2 months ago