微服务 Api 网关和 Identity Server 4 kubernetes

Microservices Api gateway and Identity Server 4 kubernates

我有微服务和 SPA 应用程序。 docker 上的所有 运行 与 docker 撰写。我有豹猫 api 网关。但是网关知道 ip 地址或微服务的容器名称以达到 .我在 ocelot 应用程序中添加了聚合器服务。我可以使用 ips 从聚合器服务访问所有服务。

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

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

我搜索了几个小时。我找到了一些关键字。 Envoy、Ingress、Consul、Ocelot。有人可以解释这些事情吗?

听起来你的问题与Service Discovery有关。

在 Kubernetes 中,“API 网关”的原生实现方式是使用 Ingress resources and Ingress Controllers。如果您使用云提供商,他们通常有这方面的产品,或者您可以使用集群内部署的自定义产品。

Service Discovery Kubernetes 的方式,是通过引用 Service resources, e.g. the Ingress resources maps URLs (in your public API) to services. And your app is deployed as a Deployment resource,并且所有副本(实例)都通过服务资源公开。应用程序还可以向其他应用程序发送请求,并且它应该将该请求发送到其他应用程序的服务资源。服务资源对接收应用程序的副本进行负载平衡。

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

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

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

有多种选择,但这完全取决于要求。

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

  • 孔APi网关
  • 大使api网关
  • TYK API 网关

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

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

身份服务器列表:

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

入口控制器:

  • GCE 入口
  • Nginx 入口控制器
  • Kong 入口控制器
  • Gloo
  • HA 代理
  • AKS 网关
  • istio 入口