kubernetes - Kubernetes 架构
问题描述
是否可以简化在裸机上运行的这条链:
- 具有随时间变化的副本数的 StatefulSet
- 服务
- Nginx 入口与
proxy-next-upstream: "error http_502 timeout invalid_header non_idempotent"
- 带有 Nginx 的 Pod 用于缓存和许多其他入口无法完成的事情
- 服务类型:负载均衡器
- 金属LB
是否可以简化此堆栈?
解决方案
是的,如果您将 nginx 变成 sidecar(部署在每个 pod 中)+ 删除入口。在这种情况下不共享缓存:
- 具有随时间变化的副本数的 StatefulSet
- Sidecar(意味着在每个副本中)带有用于缓存的 nginx 和许多其他 ingress 无法完成的事情,包括您使用的 ingress 设置。在这种情况下,代理传递给localhost 。
- 服务:负载均衡器
- 金属LB
或者,如果您需要一个公共缓存 - 只需丢弃入口:
- 有状态集
- ServiceA(指向StatefulSet):ClusterIP
- 带有缓存和黑客的 nginx。代理传递给 ServiceA.namespace.svc.cluster.local
- ServiceB(指向 nginx 部署):LoadBalancer
- 金属LB
推荐阅读
- java - 测试使用 Bolt SDK 构建的 Slack 机器人
- java - @MappedSuperclass : 持久实体应该有主键
- python - 在分布式 python 应用程序上实现 Datadog APM
- json - JSON 对象的封送切片的键名需要小写
- c - exec()系统调用,为什么调用exec()后父进程仍然运行?
- javascript - 如何渲染依赖 API 数据的 React 组件?
- java - 使用 ViewModel 在 Android 中仅加载一次数据
- spring-boot - 通过运行功能自动化测试执行(不是单元测试)来查找 Spring Boot 应用程序的代码覆盖率
- lorawan - 如何将 LoraWAN Maker 11310 连接到 Chirpstack for MQTT,然后连接到 Google Firebase?
- video.js - video.js 是否支持 MPEG2-TS/UDP 流?