3

我有微服务和 SPA 应用程序。它们都使用 docker compose 在 docker 上运行。我有 ocelot api 网关。但是网关知道微服务的 IP 地址或容器名称,以便访问。我在 ocelot 应用程序中添加了一个聚合器服务。我可以使用 ips 从聚合器服务访问所有服务。

但我想移动 kubernates。我可以扩展服务。没有静态ip。我该如何配置 .

我有身份服务。此服务知道客户端 IP 地址。又是同样的问题。

我搜索了几个小时。我找到了一些关键词。特使、入口、领事、豹猫。有人可以解释这些事情吗?

4

2 回答 2

2

听起来您的问题与Service Discovery相关。

在 Kubernetes 中,实现“API 网关”的原生方式是使用Ingress 资源Ingress Controller。如果您使用云提供商,他们通常会为此提供产品,或者您可以使用在集群中部署的自定义产品。

Kubernetes 的服务发现方式是通过引用服务资源,例如入口资源将 URL(在您的公共 API 中)映射到服务。并且您的应用程序被部署为部署资源,并且所有副本(实例)都通过服务资源公开。一个应用程序也可以向其他应用程序发送请求,它应该将该请求发送给其他应用程序的服务资源。Service 资源对接收应用程序的副本进行负载平衡。

于 2020-09-26T15:18:05.100 回答
0

您可以使用服务名称而不是客户端 IP 来连接服务。

for example : curl HTTP://<service.name>.<namespace name>.svc.cluster.local

现在,如果您期待 Kubernetes 的 API 网关和身份服务器列表

有几种选择,但这一切都取决于要求。

对于基本要求,如果您正在寻找 API 网关,则可以使用 nginx 入口和其他入口:

  • Kong API网关
  • 大使 api 网关
  • TYK API 网关

该服务网格的一部分也可能在并非所有情况下都有用,因为它主要用于管理内部流量(东西向)。

API 网关主要用于管理边缘流量。

身份服务器列表:

  • 钥匙斗篷
  • 认知 IAM (AWS)

入口控制器:

  • GCE 入口
  • Nginx 入口控制器
  • Kong入口控制器
  • 格洛
  • 高可用性代理
  • AKS 网关
  • istio 入口
于 2021-02-10T13:40:41.353 回答