常用的构建方法 https://skyao.io/learning-envoy/
手动配置构建环境,手动构建Envoy。
使用Envoy提供的预制于Docker中的构建环境进行手动构建二进制Envoy
使用Envoy提供的预制于Docker中的构建环境进行手动构建二进制Envoy,并直接将Envoy程序打包成Docker镜像
提供Bootstrap配置文件,存在使用xDS的动态资源时,还需要基于文件或管理服务器向其提供必须的配置信息
也可使用Envoy的配置生成器生成示例性配置 基于Bootstrap配置文件启动Envoy实例
直接启动二进制Envoy 于Kubernetes平台基于Sidecar的形式运行Envoy,或运行单独的Envoy Pod(Edge Proxy) 启动Envoy 启动Envoy时,需要通过(-c 选项为其指定初始配置文件以提供引导配置(Bootstrap configuration),这也是使用v2APl的必然要求;
text 1 envoy -c <path to config>.{json,yaml,pb,pb_text} 扩展名代表了配置信息的组织格式;
引导配置是Envoy配置信息的基点,用于承载Envoy的初始配置,它可能包括静态资源和动态资源的定义
静态资源(static_resources)于启动直接加载
动态资源(dynamic_resources)则需要通过配置的xDS服务获取并生成
通常,Listener 和 Cluster 是Envoy得以运行的基础,而二者的配置可以全部为静态格式,也可以混合使用动态及静态方式提供,或者全部配置为动态;
一个yaml格式纯静态的基础配置框架类似如下所示:
yaml 1 2 3 4 5 6 7 8 9 10 11 static_resources: linteners: - name: ... address: {} filter_chains: [] clusters: - name: ... type: ... connect_timeout: {} lb_policy: ... load_assignment: {} Listener 简易静态配置 侦听器主要用于定义Envoy监听的用于接收Down streams请求的套接字、用于处理请求时调用的过滤器链及相关的其它配置属性;目前envoy仅支持tcp的协议
yaml 1 2 3 4 listeners: - name: address: socket_address: { address: ....