首页 > 解决方案 > Kubernetes 架构

问题描述

是否可以简化在裸机上运行的这条链:

  1. 具有随时间变化的副本数的 StatefulSet
  2. 服务
  3. Nginx 入口与proxy-next-upstream: "error http_502 timeout invalid_header non_idempotent"
  4. 带有 Nginx 的 Pod 用于缓存和许多其他入口无法完成的事情
  5. 服务类型:负载均衡器
  6. 金属LB

是否可以简化此堆栈?

标签: kubernetes

解决方案


是的,如果您将 nginx 变成 sidecar(部署在每个 pod 中)+ 删除入口。在这种情况下不共享缓存:

  1. 具有随时间变化的副本数的 StatefulSet
  2. Sidecar(意味着在每个副本中)带有用于缓存的 nginx 和许多其他 ingress 无法完成的事情,包括您使用的 ingress 设置。在这种情况下,代理传递给localhost 。
  3. 服务:负载均衡器
  4. 金属LB

或者,如果您需要一个公共缓存 - 只需丢弃入口:

  1. 有状态集
  2. ServiceA(指向StatefulSet):ClusterIP
  3. 带有缓存和黑客的 nginx。代理传递给 ServiceA.namespace.svc.cluster.local
  4. ServiceB(指向 nginx 部署):LoadBalancer
  5. 金属LB

推荐阅读