我在Kubernetes中部署了一个Web解决方案(连接到休息服务的角度应用程序)。我在解决方案中不使用任何http会话。
在升级我的休息服务时,我需要同时使用带有1号休息服务和2版休息服务的吊舱。有什么方法可以设置网关/路由器,以便可以动态配置端点?
我希望/myendpoint?version=1
将流量路由到版本1的POD组,并且/myendpoint?version=2
将流量路由到另一组POD。
我必须能够在不停止服务的情况下动态添加新端点。
答案 0 :(得分:1)
我建议将前端应用和REST 后端分开。 (我不知道你是否已经有这个)
通过分离,您可以独立发布新版本,每个应用都有部署周期。
此外,如果您希望长期使用同一应用程序的多个版本,则可以在两个不同的Deployment
s中部署它们
例如两个Deployment
,分别具有自己的Service
和Ingress
,两者都设置。
kind: Ingress
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /v1/*
backend:
serviceName: service-v1
servicePort: 8080
- path: /v2/*
backend:
serviceName: service-v2
servicePort: 8080
或者您可以具有 N-1 兼容性,因此版本2同时实现了/v1/
和/v2/
API。
通常建议将前端部署在CDN上,因为它是静态内容。有时,您的Javascript使用cache busting引用了其他Javascript文件,如果CDN上所有静态内容都可用,则处理此类设置要容易得多。