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: {}