envoy 动态配置 lds-cds-grpc 详解

鸟瞰

birdview of lds-cds-grpc

1 前言

  1. 一个容器包含 envoy 作为前端代理
  2. 两个含有 envoy 作为 sidecar 使用的web服务器容器
  3. 一个 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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值