带API网关的kubernetes RPC微服务
我使用RPC协议应用程序作为微服务 在他们面前有一个API网关作为代理 现在我想使用k8s部署微服务,API网关在k8s集群之外,RPC微服务由k8s部署,我的集群中有三个副本RPC微服务 我的问题是如何直接访问k8s的pod,因为我必须构建一个连接池来保存这些连接,例如,我有三个RPC微服务pod 这是我的架构带API网关的kubernetes RPC微服务,kubernetes,rpc,aws-api-gateway,Kubernetes,Rpc,Aws Api Gateway,我使用RPC协议应用程序作为微服务 在他们面前有一个API网关作为代理 现在我想使用k8s部署微服务,API网关在k8s集群之外,RPC微服务由k8s部署,我的集群中有三个副本RPC微服务 我的问题是如何直接访问k8s的pod,因为我必须构建一个连接池来保存这些连接,例如,我有三个RPC微服务pod 这是我的架构 您不应该直接从pod使用RPC微服务,而应该通过Kubernetes服务 首先,您必须将RPC公开为公共K8S服务,这将为您提供一个它正在侦听的端口。使用集群的IP(当然可以不止一个)
您不应该直接从pod使用RPC微服务,而应该通过Kubernetes服务 首先,您必须将RPC公开为公共K8S服务,这将为您提供一个它正在侦听的端口。使用集群的IP(当然可以不止一个)和该端口,您将能够使用您的RPC微服务 查看文档以了解如何公开它: 您可以使用
主机网络
配置参数直接访问pod。但是,Kubernetes不推荐:
如果您需要在副本之间保留共享会话或类似的内容,我会使用另一个外部组件,如Redis或类似的内容。感谢您的评论,我将RPC公开为公共K8S服务,并将会话关联设置为ClientIP。当我的API网关访问K8S服务时,只有一个pod响应,因为会话是关联的,所以另外两个pod从未使用过