阿里云的 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 配置估计十几兆了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.