ecs中容器间的调用问题
在不同虚拟机中的容器互相调用时,使用alb或者nlb都没有问题。
但在同一台虚拟机中,如果有两个容器:容器A和容器B需要通信,则只能用4层NLB负载均衡进行通信,如下图,只有nlb支持保留源ip作为信息头。当在走负载均衡时,a和b给负载均衡的信息头的源ip都是本虚拟机的ip,所以当a发送给负载均衡信息后往b传,由于b识别到信息头的源ip与自己本机ip是相同的就会丢弃信息。因此,在负载均衡的目标群组中需要取消“保留信息头”这一功能。取消这一功能后,在a将消息传送给lb后,lb会把信息头的源ip改成自己的负载均衡器的ip,然后发送给b,由于信息头中的源ip不再是ab所在虚拟机的ip而是lb的ip,所以b可以正常接收到a的消息。
在cf的AWS::ElasticLoadBalancingV2::TargetGroup字段中添加
TargetGroupAttributes: - Key: preserve_client_ip.enabled
Value: false
且在NLB中是没有安全组的,当负载均衡在不同子网中通信时,需要在配置中打开不同子网之间的负载均衡通信。
1 2 3 | TargetGroupAttributes: - Key: preserve_client_ip.enabled Value: false |
aws的帮助文档当选择中文模式时,由于网站中很多文档没有翻译,所以这些没有翻译的文档会缺失,选择英文模式,就会显示全部文档。在帮助文档的cf中选择模板参考就可以看到所有的模板参数等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?