繁体   English   中英

动态配置路由到两组 pod

[英]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后端分开。 (不知道你有没有这个)

通过分离,您可以独立推出新版本,每个应用都有一个部署周期。

两个部署或 N-1 兼容性

另外,如果你想让同一个应用的多个版本更长时间可用,你可以将它们部署在两个不同的Deployment

例如两个Deployment ,每个都有自己的ServiceIngress来设置两者。

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。

考虑对 static 资产使用 CDN

通常建议在 CDN 上部署前端,因为它是static内容。 有时您的 Javascript 使用缓存清除引用其他 Javascript 文件,那么如果您的所有 static 内容都可从 CDN 获得,则处理此类设置会容易得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM