写点什么

Istio Mesh 模型

作者:阿泽🧸
  • 2022 年 7 月 14 日
  • 本文字数:1150 字

    阅读完需:约 4 分钟

Istio Mesh模型

为了完成不同场景、不同需求下的 Mesh 配置和下发,Istio 提供了一组 API 接口,对 Sidecar 进行配置,Envoy 获取 XDS 配置时,Istio 就会根据当前 Envoy 的配置信息,获取匹配的 XDS 配置。Istio Mesh 主要由 MeshConfig、MeshNetwork 和 ProxyConfig 这几个维度,分别负责对 Service Mesh 整体配置、Service Mesh 网络配置以及对某些 Sidecar 实例单独进行的个性化配置。

1、MeshConfig

MeshConfig 负责 Istio 集群 Mesh 相关的整体配置,具体分为如下几个方面。

  • Envoy XDS 相关配置

对于 Envoy 动态配置方式来说,需要设置 XDS 相关的行为,MeshConfig 通过 config_sources 字段设置 XDS Server 的地址,Envoy 通过该地址就可以获取相应的动态配置信息。

  • Mixer 相关配置

MeshConfig 中会分别通过 mixer_check_server 和 mixer_report_server 指定对应的 Mixer Server 地址,这里对策略检查和遥测统计分别使用不同的 Mixer Server 配置,使用的时候比较灵活。

  • Envoy 监听和通信连接相关配置

MeshConfig 分别通过 proxy_listen_port 和 proxy_http_port 设置整个 Istio 集群 Envoy 的监听端口号以及 http proxy 请求监听端口号,同时通过 connect_timeout 设置连接超时。

  • 流量控制相关配置

MeshConfig 通过 outbound_traffic_policy 指定应用访问 Istio 集群外部服务的行为,一般情况下 Istio 只允许访问服务注册中心中注册过的服务,推荐通过 ServiceEntry 配置对 Istio 集群外部服务的访问。

  • 通信安全相关配置

Envoy 需要和当前节点上的 NodeAgent 通信,获取双向 TLS 通信需要的证书信息,MeshConfig 通过 sds_uds_path 字段设置和 NodeAgent 通信的 Unix Domain Socket 地址。

  • Envoy 可观测性配置

MeshConfig 通过 enable_tracing 设置是否产生 RequsetID 和开启 trace 特性,通过 access_log_file 和 access_log_format 等设置 Envoy 访问日志的行为。

2、MeshNetwork

MeshNetworks 负责 Mesh 集群内部的网络访问和路由设置,Mesh 集群可以设置若干个 Network,每个 Network 通过唯一的网络名进行标识。Network 设置主要有两类:一类是网络中的节点信息,通过 NetworkEndpoints 设置;另一类是 Gateway 相关设置,外界访问 Istio 内部服务时的 Gateway 地址通过 IstioNetworkGateway 进行设置。


每个 NetworkEndpoints 代表可以被 Istio 集群访问到的一组终端节点集合,Network-Endpoints 可以通过显式和隐式两种方式指定。

1)显式方式可以有两种手段:一种是通过 from_registries 指定服务注册中心名,另一种是通过 from_cidr 指定节点的 CIDR(无类域间路由,可以通过子网掩码指定一个网络)范围。

2)隐式方式是通过环境变量 ISTIO_META_NETWORK 设置对应的节点信息。

3、ProxyConfig

ProxyConfig 用于定义 Envoy 的定制化行为,MeshConfig 会指定 Istio 集群所有 Envoy 的共同行为,可以通过 ProxyConfig 进行场景化定制,比如 Envoy 配置文件地址、管理平面端口号、工作线程并发度等,通过 ProxyConfig 确定了 Envoy 启动时的具体参数和行为。


发布于: 刚刚阅读数: 4
用户头像

阿泽🧸

关注

还未添加个人签名 2020.11.12 加入

还未添加个人简介

评论

发布
暂无评论
Istio Mesh模型_7月月更_阿泽🧸_InfoQ写作社区