阿里云的 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 配置估计十几兆了。
1
ysicing 2022-09-21 20:51:03 +08:00
海量大概多少,我们曾经把 2.1w 域名怼到 ingress 上 😂
|