kubernetes - 我应该使用 API 网关还是服务网格?
问题描述
假设您将微服务与 Docker 容器和 Kubernetes 一起使用。
如果在微服务前使用 API 网关(例如 Azure API 网关)来处理复合 UI 和身份验证,是否还需要 Service Mesh 来处理服务发现和断路器?Azure API Gateway 中是否有任何功能可以应对这些挑战?如何?
解决方案
API 网关应用于 OSI 模型的第 7 层,或者您可以说管理来自外部网络的流量(有时也称为北/南流量),而服务网格应用于 OSI 模型的第 4 层或管理服务间通信(有时也称为东/西交通)。API 网关功能的一些示例是反向代理、负载平衡、身份验证和授权、IP 列表、速率限制等。
另一方面,Service Mesh 像代理或边车模式一样工作,它将服务的通信责任解耦并处理其他问题,例如断路器、超时、重试、服务发现等。
如果您碰巧使用 Kubernetes 和微服务,那么您可能想探索其他解决方案,例如Ambassador + Istio或 Kong,它既可以用作网关,也可以用作服务网格。
推荐阅读
- kubernetes - 如何在 k8s 中自定义资源?
- javascript - 在 Web 表单中将单选按钮呈现为可切换按钮的最佳方式
- html - Parcel-bundler 中的 Postcss 不起作用;没有使用 CSS 模块
- python - discord.py Spotify 似乎没有做任何事情
- flutter - FutureBuilder :“预期类型为'Future
- python - 解析带有连字符的列表,包括末尾的额外连字符
- ios - Flutter 构建 ios 项目失败,无法将输入文件作为属性列表读取
- python - 如何在pyspark中的聚合函数之后保持列的顺序一致
- r - 如何找到在特定时间间隔内具有多个变量的函数的优化?
- knex.js - Knex 查询生成器在 where 子句中期望参数如果添加更多 where 子句