文章目录
    
    
    
    鸟瞰
   
     
   
    
    
    1 前言
   
- 一个容器包含 envoy 作为前端代理
- 两个含有 envoy 作为 sidecar 使用的web服务器容器
- 一个 control plane 容器
    相关文章
    
     envoy 文档动态配置示例 Dynamic configuration (control plane) 解释
    
   
    
    
    2 前端代理 front-proxy 容器
   
    初始配置包含 管理接口 9901、动态配置
    
    客户端请求代理转发端口 9090,使用静态配置指定 xds 服务器
    
    使用镜像envoyproxy/envoy-alpine:v1.20.0
   
    
    
    3 webserver01
   
两个容器共享ip 和 hostname 等网络配置,可以作为一台服务器来看待
    
    
    envoy sidecar 容器
   
包含管理接口 9921,监听 80 端口进行代理转发,envoy 资源配置使用静态配置
    
    
    webserver01 容器
   
监听 8080 ,是一个镜像 ikubernetes/mini-http-server:v0.3 的 web 服务器
    
    
    4 webserver02
   
    
    
    envoy sidecar 容器
   
包含管理接口 9922,监听 80 端口进行代理转发,envoy 资源配置使用静态配置
    
    
    webserver02 容器
   
监听 8080,镜像为 jmalloc/echo-server 的web服务器
    
    
    5 xds API server / control plane
   
使用基础镜像 ikubernetes/envoy-xds-server:v0.1,监听 18000 端口响应 xds API 动态配置的请求
    
    
    6 验证
   
    
    
    验证是否工作
   
    如果配置了两台web服务器,请求多次,看一下 load balance 是否起效
    
    在host机器通过映射出来的端口 9090 发出请求
   
while sleep 1; do echo "==============="; curl -s http://localhost:9090; echo "==============="; echo -e "\033[34m load balance:ROUND_ROBIN\033[0m"; done; 
    
    
    修改 source information 配置源文件看热加载是否生效
   
    在host机器通过映射出来的端口 9901 发出请求
    
    
     curl http://localhost:9901/clusters
    
    
    这个镜像 ikubernetes/envoy-xds-server:v0.1 有点bug,有时候修改了两次以后再修改之后没反应,需要重启 control plane。这里control plane 的实现是通过监测 yaml 文件的变化。envoy 不需要重启。
   
    
    
    7 code on github
   
    
    
    Ref
   
    
     example#dynamic Official DOC
    
    
    
     envoy部分五:envoy的动态配置
    
    
    
     Envoy实现.NET架构的网关(一)静态配置与文件动态配置
    
    
    
     Envoy示例
    
    
    
     iKubernetes/servicemesh_in_practise github
    
    
    
     Dynamic configuration (control plane) Official DOC
    
    
    
     dynamic-config-cp Github
    
   
 
