Closed timzaak closed 3 years ago
最近要给现有的服务,添加为计费和授权模块,本来想直接在上面写,但实在不想写Java代码,就想找个取巧的方式,搞API网关。
API 网关目前市场上,只要看能 support k8s 的就成,如果现在还没支持,大概率就被历史所遗弃。 我个人倾向于基于Rust 语言写的,所以想搞 linkerd-proxy, 但奈何相关文档匮乏,它更多的是一个 Linkerd 组件,单独拿出来用,可能需要耗费大量资源去弄清楚如何用,就先算了。 nginx+lua 的相关框架,有 openResty、sixapi、Kong 等,要写Lua脚本,不太想搞。 Envoy 在有 Contour 项目加持上,能成为 k8s Ingress Controller,本身 GRPC API 功能相当丰富,也是 Istio service mesh 的重要组件。我可以写 Scala 语言来控制它,这么看来,就相当给力了。先拿它试试水。
翻了一圈,发现 nginx controller 本身就支持 OAuth2 的授权认证。配合OAuth-proxy,就能搞定 keycloak 代理。
API网关的计费、控流等功能其实很麻烦,还是要多用用现有的。
最近要给现有的服务,添加为计费和授权模块,本来想直接在上面写,但实在不想写Java代码,就想找个取巧的方式,搞API网关。
API 网关目前市场上,只要看能 support k8s 的就成,如果现在还没支持,大概率就被历史所遗弃。 我个人倾向于基于Rust 语言写的,所以想搞 linkerd-proxy, 但奈何相关文档匮乏,它更多的是一个 Linkerd 组件,单独拿出来用,可能需要耗费大量资源去弄清楚如何用,就先算了。 nginx+lua 的相关框架,有 openResty、sixapi、Kong 等,要写Lua脚本,不太想搞。 Envoy 在有 Contour 项目加持上,能成为 k8s Ingress Controller,本身 GRPC API 功能相当丰富,也是 Istio service mesh 的重要组件。我可以写 Scala 语言来控制它,这么看来,就相当给力了。先拿它试试水。