【发布时间】:2018-11-03 04:15:54
【问题描述】:
我想知道 Istio 是否是支持特定路由情况的好工具,如果不是(或者即使是),还有哪些其他方法可用。
- 我有两个微服务,X 和 Y,每个都有一些副本。
- X 向 Y 发送请求。
- X 以特定用户的身份发送请求,例如“bob”。
- Y 的一些副本子集(不是全部!)可以处理用户“bob”的请求。
- 可以处理“bob”请求的 Y 子集不是静态的,而是随时间变化,具体取决于存储在临时副本中的某些状态。
所以当 X 发送请求时,它必须确定它正在发送请求的用户(“bob”),该特定请求可以发送到 Y 的哪个子集?
在 Istio 中,有一些通过查看 HTTP 标头与用户关联的路由规则示例。对于服务器端 Y,我是否只需在 Y 中有代码调用 k8s API 来针对副本 Pod 添加和删除标签?
例如,
Service-Y.Pod-1.Labels = {
"user-bob": "true",
"user-jane": "true",
...
}
不清楚标签如何处理这个问题,或者这种路由是否应该被提升到应用层,而不是试图在一个很大程度上透明的服务网格层中进行编码。
【问题讨论】:
标签: routing kubernetes grpc istio