amazon-web-services - 统一来自 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
不会改变的域,他们会将其列入白名单。
如何实现?
解决方案
您必须为此场景设置 NAT 网关。
因此,使用 NAT 网关,所有出站请求都将使用一个 VM 转移,并且您还将获得出站流量的单个 IP。
您可以阅读有关NAT的更多信息:https ://cloud.google.com/nat/docs/overview
AWS:https ://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
推荐阅读
- angular - patchValue 现在正在初始化 FormArray 值
- angular - CORS Chrome通配符'*'Angular 8?
- android - Android viewPager - 需要从 JSON 加载图像
- amazon-web-services - 如何获取 CloudFormation 生成的 lambda 的日志组名称和 ARN?
- sas - 为 %sysget 返回值设置默认值
- django - 如何根据 Django 中的单选按钮呈现查询集
- windows - Docker for Windows 无法拉取私有镜像。错误是“上下文已取消”
- java - 在 Java 线程代码中“忽略新实例”警告
- javascript - 从 vb.net 中 json 文件的数组中返回多个元素,绑定到数据表
- python - 输出层的形状总是 (1,)