Istio 1.1 中的限流问题

Istio 1.1 发布之后,对 《深入浅出 Istio》一书中的例子进行了一遍快速的检查,发现限流功能已经无法使用了。

在解决了 Prometheus 的 Handler 问题之后,开始查看限流的问题。

Mixer 日志控制的两个小技巧

Mixer 策略相关内容比较多,经常需要查看 Policy 和 Telemetry 的日志,然而这两种进程的缺省日志都是很多的,可以用一点小技巧来进行清理。

GODEBUG

首先,Mixer 的两个 Deployment 中都会带有 GODEBUG 环境变量,用于开启调试信息,可以使用 kubectl edit 命令删除环境变量。

ControlZ

Istio 组件都带有 ControlZ 接口,可以用于控制和查看核心组件的一些配置信息,其端口都开放在 9876,可以用端口转发的方式打开进行调整,例如:

$ kubectl port-forward -n istio-system \
> istio-telemetry-c545bb9bd-x7jpz 9876:9876
Forwarding from 127.0.0.1:9876 -> 9876
Forwarding from [::1]:9876 -> 9876

然后就可以用浏览器打开 http://127.0.0.1:9876 进行调整了。

controlz

言归正传

应用书中的 YAML 代码的同时,可以打开 Mixer 的日志,会发现其中有几行错误:

error  failed to evaluate expression for field 'Dimensions[destination]'; unknown attribute destination.service
error  Instance not found: instance='dest-quota.quota'
error  No valid instances found                                                error  No valid actions found in rule

这里发现了一个无法识别的属性:destination.service。翻查文档发现,该属性在 Istio 1.0 的 Reference 中声明即将过期;在 1.1 中已经停用,因此将其改为 destination.service.host 即可正常使用。更新代码已经上传到随书代码库的 1.1 分支中的第八章内容里。

Avatar
崔秀龙

简单,是大师的责任;我们凡夫俗子,能做到清楚就很不容易了。

comments powered by Disqus
下一页
上一页

相关