Envoy结构
来源:原创
时间:2019-11-15
作者:脚本小站
分类:云原生
envoy是代理服务,支持3/4过滤器,7层过滤器,HTTP2、gRPC等。
Envoy配置:
node: 节点标识,一个Pod代表一个node
static_resources:定义静态配置
dynamic_resources:定义动态配置资源,xDS来获取配置,动态和静态可以同时出现
admin:envoy内置的管理接口
reacing:分布式跟踪
layered_runtime:层级化的运行时使用RTDS动态加载配置
hds_config:health check健康检查动态配置
overload_manager:过载管理器
stats_sinks:统计信息接收器
{ "node": "{...}", "static_resources": "{...}", "dynamic_resources": "{...}", "cluster_manager": "{...}", "hds_config": "{...}", "flags_path": "...", "stats_sinks": [], "stats_config": "{...}", "stats_flush_interval": "{...}", "watchdog": "{...}", "tracing": "{...}", "runtime": "{...}", "layered_runtime": "{...}", "admin": "{...}", "overload_manager": "{...}", "enable_dispatcher_stats": "...", "header_prefix": "..." }
过滤器:
配置生成器:
在源码中的configs目录中:
configgen.py 配置生成器脚本
envoy_service_to_service_v2.template.yaml 服务间通信脚本
envoy_front_proxy_v2.template.yaml 前端代理模板
envoy_double_proxy_v2.template.yaml 双重代理模版
启动envoy:
envoy -c <path to config>.{json,yaml,pb,pb_text}
配置文件可以是静态或动态,或者混合模式。
static_resources.listeners
static_resources.clusters
static_resources: # 顶级配置段 listeners: # 监听器 - name: address: {} filter_chains: [] clusters: #集群 - name: type: connect_timeout: {} lb_policy: load_assignment: {}