【发布时间】:2020-12-03 06:18:12
【问题描述】:
我需要在 kubernetes 集群上将多个 hiveserver 作为 pod 运行,每个 hiveserver 为属于不同 AD 组的用户提供服务。这些 hiveserver 需要暴露在 kubernetes 集群之外,但是每个 hiveserver 不能暴露为不同的服务。理想情况下,我希望使用入口控制器实现反向代理,并为每个 hiveserver 定义入口,因为服务器可以动态创建和销毁。
我看到 nginx 入口控制器可用于 http,但我看不出有一种方法可以将其用作基于节俭的 hiveservers 的反向代理。我也看过 knox,但它似乎只支持 http 传输。
有没有一种已知的方法可以将入口控制器设置为前端非 http 端点(如 thrift hiveservers)的反向代理?
【问题讨论】:
-
“有没有一种已知的方法可以将入口控制器设置为前端非http端点的反向代理,例如thrift hiveservers?”并非如此,引用Ingress docs:“Ingress 将 HTTP 和 HTTPS 路由从集群外部暴露给集群内的服务。”
-
您需要提供更多细节和场景。它将在云或本地环境中。你用的是什么K8s版本。你想如何保护它。你会只使用 Kubernetes、Ingress 和其他软件吗?
-
@PjoterS 它在本地环境中,运行 k8s 版本 1.17。身份验证将在 hiveserver 端进行。该用例不需要额外的安全层。 Hiveservers 将作为 pod 运行 - 将它们中的每一个公开为单独的端点需要每个用户知道他特定的 hiveserver 才能连接。相反,我正在考虑使用带有某种脚本的反向代理来使用用户名查询 AD 组并重定向到正确的 hiveserver。
-
hive-site.xml 中的 hive.server2.transport.mode 可以设置为 http 以使用通过 HTTP 传输发送 Thrift RPC 消息的 HTTP 模式。这不适用于您的情况吗?
-
@GirishR:我正在尝试使用不同的节俭服务来解决类似的问题。很想知道您是否能够在不实施服务网格的情况下让 Ingress 与 Thrift 一起工作。
标签: kubernetes reverse-proxy thrift hiveserver2