热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

使用AWSECS服务和ElasticLoadBalancer向公众开放多个端口

如何解决《使用AWSECS服务和ElasticLoadBalancer向公众开放多个端口》经验,为你挑选了2个好方法。

我拥有公开多个端口的服务,并且可以与kubernetes正常工作,但是现在我们将其移至AWS ECS。似乎我只能通过Load Balancer公开端口,并且即使docker定义了多个端口,我也只能选择一个端口,每个服务/任务只能使用1个端口

Add to load balancer按钮允许添加一个端口。一旦添加,就没有按钮添加第二个端口。

有没有比通过第二个代理服务公开第二个端口更好的工作环境?

更新:我使用基于Fargate的服务。



1> 小智..:

我在为每个实例创建多个容器时遇到了这个问题,而第二个容器却没有启动,因为它使用了taskdefinition中定义的相同端口。

我们所做的是,在这些容器之上创建了一个应用程序负载平衡器,并删除了硬编码端口。当应用程序负载平衡器下没有获得预定义的端口时,它将执行的操作是:使用动态端口映射功能。容器将出现在随机端口上,并驻留在一个目标组中,负载均衡器将自动将请求发送到这些端口。

可以在这里找到更多详细信息



2> Adiii..:

我不能说这将是一个不错的解决方法,但是我正在开发一个项目,需要使用AWS ECS运行Ejabberd,但是在将服务端口绑定到负载均衡器时发生了相同的问题。

我使用的是terraform,由于AWS ECS的这一限制,我们同意为每个实例运行一个容器来解决端口问题,因为我们应该公开两个端口。

如果您不想为容器分配动态端口,并且想为每个实例运行一个容器,那么该解决方案肯定会起作用。

    创建一个目标组并指定容器的第二个端口。

    转到ECS集群的AutoScalingGroups

    在ECS集群的Autoscaling组中编辑并添加新创建的目标组

因此,如果您扩展到两个容器,则意味着将有两个实例,因此新启动的实例将注册到第二个目标组,而Autoscaling组将负责该操作。在我看来,这种方法效果很好,但是无需考虑任何事情。

不要在目标中绑定主端口,最好在ALB服务中绑定主端口。这种方法的主要优点是,如果您的容器无法响应AWS运行状况检查,则该容器将自动重启。作为目标组健康检查不会重新创建您的容器。

当Docker容器中有动态端口公开时,此方法将不起作用。

AWS应该更新其ECS代理以处理这种情况。


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • docker增加restart=always, docker重启后自动启动容器的方法
    本文介绍了在运行docker容器时如何添加参数来保证每次docker服务重启后容器也自动重启的方法,以及如何使用命令来更新已启动的容器。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 处理docker容器时间和宿主机时间不一致问题的方法
    本文介绍了处理docker容器时间和宿主机时间不一致问题的方法,包括复制主机的localtime到容器、处理报错情况以及重启容器的步骤。通过这些方法,可以解决docker容器时间和宿主机时间不一致的问题。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 开发笔记:Docker 上安装启动 MySQL
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker上安装启动MySQL相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 容器管理与容器监控influxDB
    容器管理与容器监控-influxDB什么是influxDBinfluxDB安装(1)下载镜像(2)创建容器(3 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
author-avatar
注定的等待幸福的到来
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有