为什么Istio Mixer使用两个部署分别进行遥测收集和策略检查?

时间:2018-10-28 11:52:38

标签: istio

部署istio后,我们可以看到基于Mixer的两种部署:def keys = sh(script: 'consul kv get -keys --http-addr=X key/path/ | awk -F / \'{print $(NF-1)}\'', returnStdout: true).trim().tokenize('\n') def choice = input message: 'Please choose a sub-key', parameters: [choice(choices: keys, description: '', name: 'Subkeys')] println "You chose $choice" istio-policy。它们在容器istio-telemetry上具有相同的pod规格:

mixer

我有两个问题:

  1. 混合器容器如何知道它们应该负责遥测收集或策略控制?我猜他们是由istio-proxy容器的不同论点来区分的?

  2. 为什么不对两个功能使用相同的部署?

1 个答案:

答案 0 :(得分:1)

我将分享对此功能的理解。 我们可以看到这种分离是在release notes中编写的0.6版本中完成的。

  

单独的检查和报告群集。现在配置Envoy时   可以对使用的Mixer实例使用不同的群集   用于混音器的“检查”功能   功能。这对于大型部署可能会有用,   缩放Mixer实例。

为什么重要?策略检查是在每个请求之前执行的,因此这是延迟可能来自的地方,因此我们可能需要扩展混合策略策略组件。 遥测报告是在请求之后发生的,此外,边车会缓冲传出的遥测,因此对混频遥测的调用并不那么频繁。 另外,遥测数据的延迟不是很关键,因为它不会影响应用程序的用户体验。

因此,简而言之,主要原因是可伸缩性问题,特别是在多集群环境中。