首页 > 解决方案 > 统一来自 kubernetes 集群的出站请求 ip

问题描述

我有一个kubernetes有 5 个节点的集群,使用kops部署在 aws 上。

ingress-nginx为反向代理设置了负载均衡器和控制器。

因此,所有传入请求都来自负载均衡器的单个 ip 。

admin-srv在集群中有一个服务,它将请求转发给两个pods.

问题是每当我从这些 pod 向某个域发出请求时example.com,分配的源 ip 是随机的,并且是从任何node

所以,有一次我点击请求它就像5.1...,再次如果点击 ip 变成5.2....

我所称的域example.com他们需要一个ip不会改变的域,他们会将其列入白名单。

如何实现?

标签: amazon-web-servicesdockerkubernetes

解决方案


您必须为此场景设置 NAT 网关。

因此,使用 NAT 网关,所有出站请求都将使用一个 VM 转移,并且您还将获得出站流量的单个 IP。

您可以阅读有关NAT的更多信息:https ://cloud.google.com/nat/docs/overview

AWShttps ://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html

如果您是 GKE 之一,您可以查看这个 terraform 示例:https ://registry.terraform.io/modules/GoogleCloudPlatform/nat-gateway/google/latest/examples/gke-nat-gateway


推荐阅读