我使用 RPC 协议应用程序作为微服务以及他们面前的 API 网关作为代理。
现在我想用k8s部署微服务,API网关出k8s集群,RPC微服务由k8s部署,我的集群里有三个副本RPC微服务。
我的问题是我如何直接访问 k8s 的 pod,因为我必须构建一个连接池来保存这些连接,例如,我有三个 RPC 微服务 pod。
这是我的架构建筑形象
你不应该直接从 pod 使用 RPC 微服务,而应该通过 Kubernetes 服务。
首先,您必须将 RPC 公开为公共 K8S 服务,这将为您提供一个侦听的端口。使用群集的 IP(当然可以有多个)和该端口,您将能够使用 RPC 微服务。
查看文档以了解如何公开它:
https://kubernetes.io/docs/concepts/services-networking/service/
您可以使用配置参数直接访问 Pod hostNetwork
。但是,Kubernetes 不推荐它:https://kubernetes.io/docs/concepts/configuration/overview/
如果您需要在副本之间保留共享会话或类似内容,我会使用另一个外部组件,如 Redis 或类似的东西。