【问题标题】:kubernetes RPC micro-service with API gateway带有 API 网关的 Kubernetes RPC 微服务
【发布时间】:2018-04-16 04:52:14
【问题描述】:

我使用 RPC 协议应用程序作为微服务 和他们前面的一个 API 网关作为代理。

现在想用k8s部署微服务,API网关在k8s集群外,RPC微服务是k8s部署的,我的集群里有3个副本的RPC微服务。

我的问题是如何直接访问k8s的pod,因为我必须建立一个连接池来保存这些连接,比如我有3个RPC微服务pod。

这是我的架构 architecture image

【问题讨论】:

    标签: kubernetes rpc aws-api-gateway


    【解决方案1】:

    您不应直接从 pod 使用 RPC 微服务,而应通过 Kubernetes 服务使用。

    首先,您必须将 RPC 公开为公共 K8S 服务,这将为您提供它正在侦听的端口。有了集群的 IP(当然可以不止一个)和那个端口,你就可以使用你的 RPC 微服务了。

    查看文档以了解如何公开它:

    https://kubernetes.io/docs/concepts/services-networking/service/

    您可以使用 hostNetwork 配置参数直接访问 Pod。不过 Kubernetes 不推荐:https://kubernetes.io/docs/concepts/configuration/overview/

    如果您需要在副本之间保持共享会话或类似的东西,我会使用另一个外部组件,如 Redis 或类似的东西。

    【讨论】:

    • 感谢您的评论,我将RPC暴露为公共K8S服务,并将Session Affinity设置为ClientIP。当我的API Gateway访问k8s服务时,只有一个pod响应,因为会话是affinity ,另外两个豆荚从未使用过
    猜你喜欢
    • 2016-01-14
    • 2018-10-23
    • 2022-01-04
    • 2019-10-30
    • 1970-01-01
    • 2020-05-05
    • 2019-08-07
    • 2019-04-06
    • 2020-07-24
    相关资源
    最近更新 更多