kubernetes - Ingress 的 Istio 可编程路由
问题描述
我一直在寻找 Istio 在入口控制器上具有可编程路由的能力,以作为 Kong API 网关插件的可靠替代品。一个简单的例子是在 Istio 虚拟服务中有一个规则,当用户在后面的应用程序中的许可证过期时拒绝 API 调用。
这意味着,入口控制器能够查询应用程序内部的某些内容以确定许可证状态,并根据该响应阻止/允许来自特定客户的流量(由标头标识)
这是我用 Kong 插件做的事情,但我在 Istio 上没有找到类似的东西。
解决方案
拒绝用户请求的最简单解决方案是在身份验证过程中附加该信息(到 cookie 或 jwt 令牌),然后使用虚拟服务拒绝这些请求。
另一个解决方案(更复杂)是使用带有 Lua 脚本的 Envoy 过滤器,您可以在其中添加自定义逻辑并决定是否要继续处理请求。
推荐阅读
- mysql - MySQL - 比较两个负时间值
- ssl - 在 Hyperledger Fabric 中使用 TLS 后如何验证安全通信
- python - 为什么转换时区(以及转换为 unix 时间戳)在 Pandas 中的行为不一致?
- c++ - 如何返回派生类型?
- django - django-allauth 和 docker 闪烁的 Facebook 登录弹出窗口
- dart - 使用偏移量的容器动画 - Flutter
- c# - WPF 使用重置对 DataGrid 进行排序
- ibm-watson - IBM Chatbot 助手的覆盖日志 URL 是什么?
- node.js - 使用 NGINX 和 Nodejs 反向代理服务快速动态 URL
- pandas - 使用 pip 安装程序的 pandas 安装错误