【问题标题】:Kubernetes communication between microservicesKubernetes 微服务之间的通信
【发布时间】:2020-02-06 14:49:13
【问题描述】:
我们正在开发基于微服务的应用程序。它们将使用 Helm Package Manager 部署到 kubernetes,并且它们都存储了自己的存储库和 helm chart。以下是我们微服务的名称。
我的困惑是,在部署之前,我如何指定后端的 pod 需要与 UI、API 和 Auth 的 Pods 进行通信。App 可以知道与 UI/AUTH/任何东西建立连接,但最好的管理方式是什么这在微服务 pod 之间。
- 后端
- 用户界面
- API
- 授权
【问题讨论】:
标签:
kubernetes
kubernetes-helm
【解决方案1】:
在 Kubernetes 中管理微服务之间通信的推荐方式是使用Services。
基本上,您需要将每个微服务包装到一个集群 IP 服务中,然后您可以通过使用它的唯一 DNS 记录/环境变量/通过使用服务网格框架来访问它,例如 @987654322 @
每个微服务可以有一个舵图。该 helmchart 将包含与该微服务相关的所有内容的 yaml 文件:部署、配置映射、机密等,还包含服务(最好有一个单独的 yaml 文件)。
通过服务的使用,后端服务可以很容易地与其他服务进行通信,因为所有服务的IP地址都会被注入到后端容器的环境变量中,如你所见here
因此,您只需更新您的后端应用程序以读取您要连接的微服务的 IP(来自环境变量),然后您就可以连接到它。