码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • envoy 动态配置 lds-cds-grpc 详解


    文章目录

      • 鸟瞰
      • 1 前言
      • 2 前端代理 front-proxy 容器
      • 3 webserver01
        • envoy sidecar 容器
        • webserver01 容器
      • 4 webserver02
        • envoy sidecar 容器
        • webserver02 容器
      • 5 xds API server / control plane
      • 6 验证
        • 验证是否工作
        • 修改 source information 配置源文件看热加载是否生效
      • 7 code on github
      • Ref

    鸟瞰

    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; 
    
    • 1

    修改 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

  • 相关阅读:
    Android帧率监测与优化技巧
    wordpress 付费主题modown分享,可实现资源付费
    【软考软件评测师】第三十章 操作系统(PV操作与死锁)
    LeetCode--196. 删除重复的电子邮箱
    柬埔寨市场最全开发攻略
    开发类的工具
    竞赛选题 车位识别车道线检测 - python opencv
    ESP32网络开发实例-UDP数据发送与接收
    JAVA计算机毕业设计诗词文化网站源码+系统+mysql数据库+lw文档
    第十五篇-推荐-Huggingface-镜像-2023-10
  • 原文地址:https://blog.csdn.net/ppdouble/article/details/127544340
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号