通过DNS切换在两个k8s/gke命名空间之间进行Canary部署



我有两个类似的服务/部署/入口在两个GKE/K8S命名空间中运行:ns-A(旧(和ns-B(新(。ns-A的入口类似于myservice.mycompany.com。所有客户端都在使用myservice.mycompany.com来访问ns-A中的旧服务。

现在,我需要推出从ns-A到ns-B的流量。我需要所有客户端访问ns-B中的新服务。我可以在ns-B:myservice-B.mycompany.com中为新服务创建一个新的Ingress,并更新所有服务以使用这个新端点。

但我有很多客户。可以使用其他方式来进行从ns-A到ns-B的金丝雀展开。我查看了等高线,但等高线不能支持两个名称空间的卷展栏。

是否可以使用DNS切换或集群内部DNS名称来进行canary部署?你能提供更多的细节吗?感谢

您可以在入口级别实现canary,而不是DNS级别。比如说,ingress-nginx的新版本支持开箱即用的金丝雀部署
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#canary.

这是一个很好的例子
https://medium.com/@domi.stoehr/canary-deployments-on-kubernetes-without-service-mesh-425b7e4cc862

请注意,ingress-nginxcanary实现要求您的服务位于不同的命名空间中。

最新更新