部署大使 API 网关以防止 DDoS 的最佳实践

问题描述

我需要在我所有的服务前设置大使 API 网关。 大使将执行多种操作,例如速率限制、日志记录、DDoS 保护等。

特别是从 DDoS 保护的角度来看,在主应用程序 Kubernetes 集群之外托管大使 API 网关是最佳实践吗?还是托管在单独的命名空间中并对其有配额限制?

在同一个 k8s 集群中托管 API 网关可能会导致集群因不需要的流量而不堪重负,但如果我在单独的 k8s 集群上托管 API 网关,则 k8s 集群可以避免这种情况。

此外,Ambassador API 网关是否可以部署在非 k8s 基础架构和 HA 模式下?

解决方法

据我所知有两件事

Ambassador API 网关边缘堆栈

Ambassador 是开源的,而 Edge Stack 是付费版本。

您可以在 VM 和 linux 上安装边缘堆栈,但对于 API 网关,只有 YAML 和 helm 可用。

您可以设置速率限制以保存 DDos。

在同一个 k8s 集群中托管 API 网关可能会导致集群 由于不需要的流量而不知所措,但如果我托管 API 可以保存单独的 k8s 集群应用程序 k8s 集群上的网关 来自这样的场景。

在这种情况下您是对的,但是如果您使用的是 K8s,您可以使用节点关联来修复特定节点上的 API 网关的 pod,或者将其作为守护进程集运行。设置关联和反关联可能有助于分离 POD 或应用程序和 API 网关。