Istio / Kuberentes中的用户特定路由

时间:2018-05-24 04:09:36

标签: routing kubernetes grpc istio

我想知道Istio是否是支持特定路由情况的好工具,如果没有(或者即使它是),还有其他方法可用。

  • 我有两个微服务,X和Y,每个都有一些复制品。
  • X向Y发送请求。
  • X以特定用户身份发送请求,例如" bob"。
  • Y的副本的某些子集(不是全部!)可以处理对用户的请求" bob"。
  • Y的子集,可以处理" bob"不是静态的,而是根据存储在短暂副本中的某些状态来更改超时。

因此,当X发送请求时,它必须为用户确定它正在发送请求(" bob"),Y的哪个子集可以发送该特定请求?

在Istio中,有一些通过查看HTTP标头与用户关联的路由规则的示例。对于服务器端,Y,我是否只需要在Y中调用 k8s API来添加和删除副本Pod上的标签?

如,

Service-Y.Pod-1.Labels = {
  "user-bob": "true",
  "user-jane": "true",
  ...
}

不清楚标签处理这个问题的方式,或者是否应该将这种路由提升到应用程序层,而不是尝试在很大程度上透明的服务网格层中对其进行编码。

1 个答案:

答案 0 :(得分:0)

你有来自K8s的open API。您可以制作一些代码,为pod添加标签,然后将此流量路由到您的pod。