V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dzdh
V2EX  ›  Kubernetes

K8S 中 nginx 海量域名对应同一程序的不同分支如何更优雅的解决

  •  1
     
  •   dzdh · 2022-09-21 12:51:21 +08:00 · 1370 次点击
    这是一个创建于 800 天前的主题,其中的信息可能已经有所发展或是发生改变。

    阿里云的 ack 集群

    user -> slb(4 层 80/443) -> pod-svc-clusterip(nginx) -> 7 层 80 -> svc(master/release/special-a/special-b)(clusterip)

    php 的程序,svc 就是不同分支代码根据 git ci/cd 自动打包的镜像,自动轮换。

    用户访问 slb 作为入口,80/443 4 层代理到 一个 nginx 的服务(没用 ingress )。这个 nginx 服务负责解析不同域名对应所属哪个分支(一个客户可能有多个域名和系统自带的域名)然后 proxy_pass 到 http://svc 的 clusterip

    nginx 的配置根据 map $host $version 匹配哪个$host 是哪个 svc 。

    另外有个问题,由于后端代码和前端代码是分离的两个仓库,也是两套 cicd 。现在前后端发版会触发两次 svc 的镜像更新。

    所以我想 一样根据 map $host $frontend_version { xx.com index_release.html }

    在 nginx 里 location = / { 怎么返回$frontend_version 这个 html 静态文件呢 }

    另一个问题是有更优雅的解决方案吗。ingress 是不行了。所有域名都弄到 ingress 的 yaml 配置估计十几兆了。

    2 条回复    2022-09-22 09:05:48 +08:00
    ysicing
        1
    ysicing  
       2022-09-21 20:51:03 +08:00
    海量大概多少,我们曾经把 2.1w 域名怼到 ingress 上 😂
    dzdh
        2
    dzdh  
    OP
       2022-09-22 09:05:48 +08:00
    @ysicing 8w-9w 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3614 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.