部署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
我有两个问题:
混合器容器如何知道它们应该负责遥测收集或策略控制?我猜他们是由istio-proxy容器的不同论点来区分的?
为什么不对两个功能使用相同的部署?
答案 0 :(得分:1)
我将分享对此功能的理解。
我们可以看到这种分离是在release notes中编写的0.6
版本中完成的。
单独的检查和报告群集。现在配置Envoy时 可以对使用的Mixer实例使用不同的群集 用于混音器的“检查”功能 功能。这对于大型部署可能会有用, 缩放Mixer实例。
为什么重要?策略检查是在每个请求之前执行的,因此这是延迟可能来自的地方,因此我们可能需要扩展混合策略策略组件。 遥测报告是在请求之后发生的,此外,边车会缓冲传出的遥测,因此对混频遥测的调用并不那么频繁。 另外,遥测数据的延迟不是很关键,因为它不会影响应用程序的用户体验。
因此,简而言之,主要原因是可伸缩性问题,特别是在多集群环境中。