[英]Dynamically configuring routing to two set of pods
我在 Kubernetes 中部署了 web 解决方案(连接到 rest 服务的角度应用程序)。 我的解决方案中没有使用任何 http 会话。
在升级我的 rest 服务时,我的两个 pod 都需要 rest 服务版本 1 和 rest 服务版本 2 可用。 有没有办法设置网关/路由器,我可以动态配置我的端点?
我希望/myendpoint?version=1
将流量路由到版本 1 的 POD 组,并/myendpoint?version=2
将流量路由到另一组 POD。
我必须能够在不停止服务的情况下动态添加新端点。
我建议将前端应用程序和 REST后端分开。 (不知道你有没有这个)
通过分离,您可以独立推出新版本,每个应用都有一个部署周期。
另外,如果你想让同一个应用的多个版本更长时间可用,你可以将它们部署在两个不同的Deployment
中
例如两个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 上部署前端,因为它是static内容。 有时您的 Javascript 使用缓存清除引用其他 Javascript 文件,那么如果您的所有 static 内容都可从 CDN 获得,则处理此类设置会容易得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.