为滚动更新部署类型配置负载均衡器 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

为滚动更新部署类型配置负载均衡器

如果服务任务需要一段时间才能启动和响应 Elastic Load Balancing 运行状况检查,则您可指定最长 2,147,483,647 秒(大约 68 年)的运行状况检查宽限期。在此期间,服务计划程序忽略运行状况检查状态。此宽限期可防止服务计划程序将由于时间不足尚未启动的任务标记为不正常并停止它们。您的服务只有配置为使用负载均衡器时此设置才适用。

配置运行状况检查宽限期

  1. 如果您尚未这样做,请按照 步骤 1:配置基本服务参数 中的基本服务配置过程操作。

  2. 对于 Health check grace period(运行状况检查宽限期):输入时间段(以秒为单位),在该时间段内,Amazon ECS 服务调度器会在首次启动任务后忽略不正常的 Elastic Load Balancing 目标运行状况检查。

要将服务配置为使用负载均衡器,您必须选择要用于服务的负载均衡器类型。

选择负载均衡器类型

  1. 如果您尚未这样做,请按照 步骤 1:配置基本服务参数 中的基本服务创建过程操作。

  2. 对于负载均衡器类型,选择要用于您的服务的负载均衡器类型:

    Application Load Balancer

    允许容器使用动态主机端口映射。在允许主机端口映射的情况下,可以在单个容器实例上使用同一端口放置多个任务。在单个负载均衡器上,多个服务可以通过基于规则的路由和路径使用同一个侦听器端口。

    Network Load Balancer

    允许容器使用动态主机端口映射。在允许主机端口映射的情况下,可以在单个容器实例上使用同一端口放置多个任务。在单个负载均衡器上,多个服务可以通过基于规则的路由使用同一个侦听器端口。

    经典负载均衡器

    需要静态主机端口映射(每个容器实例只允许一个任务)。不支持基于规则的路由和路径。

    我们建议您为 Amazon ECS 服务使用 Application Load Balancer。这样,您就可以使用 Application Load Balancer 的高级功能。

  3. 对于 Select IAM role for service(为服务选择 IAM 角色),请选择创建新角色以创建 Amazon ECS 服务相关角色,或选择您现有的服务相关角色。

  4. 对于 ELB Name,选择要用于您的服务的负载均衡器的名称。只有与您之前选择的负载均衡器类型相对应的负载均衡器在此处可见。

  5. 下一个步骤因服务的负载均衡器类型而异。如果您选择了 Application Load Balancer,请按照 配置 Application Load Balancer。 中的步骤操作。如果您选择了 Network Load Balancer,请按照 配置 Network Load Balancer 中的步骤操作。

配置 Application Load Balancer。

  1. 对于 Container to load balance(用于负载均衡的容器),从任务定义中选择负载均衡器要向其分配流量的容器和端口组合,然后选择 Add to load balancer(添加到负载均衡器)。

  2. 对于 Listener port(侦听器端口),选择您在 创建 Application Load Balancer 中创建的侦听器的侦听器端口和协议(如果适用)。或者,选择 create new(新建)以创建一个新的侦听器,然后输入端口号并为 Listener protocol(侦听器协议)选择一个端口协议。

  3. 对于 Target group name,选择您在创建 Application Load Balancer中创建的目标组(如果适用),或选择 create new 以创建新目标组。

    重要

    如果服务的任务定义使用 awsvpc 网络模式(为 Fargate 启动类型所需),则目标组必须使用 ip 而不是 instance 作为目标类型。这是因为使用 awsvpc 网络模式的任务与弹性网络接口而不是 Amazon EC2 实例关联。

  4. (可选)如果选择创建新目标组,请按照下面所示填写以下字段:

    • 对于 Target group name (目标组名),为您提供了默认名称。

    • 对于 Target group protocol,输入用于将流量路由至您的任务的协议。

    • 对于 Path pattern(路径模式),如果您的侦听器没有任何现有规则,则会使用默认路径模式(/)。如果您的侦听器已经有默认规则,您必须输入与要发送到您的服务目标组的流量匹配的路径模式。例如,如果您的服务是名为 web-app 的 Web 应用程序,并且您希望与 http://my-elb-url/web-app 匹配的流量路由到您的服务,则输入 /web-app* 作为路径模式。有关更多信息,请参阅适用于 Application Load Balancers 的用户指南中的 ListenerRules

    • 对于 Health check path(运行状况检查路径),输入负载均衡器要向其发送运行状况检查 ping 的路径。

  5. Application Load Balancer 配置完成后,选择 Next step(下一步)。

配置 Network Load Balancer

  1. 对于用于负载均衡的容器,从任务定义中选择负载均衡器应将流量分发到的容器和端口组合,然后选择添加到负载均衡器

  2. 对于 Listener port (侦听器端口),选择您在创建 Network Load Balancer中创建的侦听器的侦听器端口和协议(如果适用);或者选择 create new (新建) 以创建新侦听器,然后输入端口号并为 Listener protocol (侦听器协议) 选择端口协议。

  3. 对于 Target group name,选择您在创建 Network Load Balancer中创建的目标组(如果适用),或选择 create new 以创建新目标组。

    重要

    如果服务的任务定义使用 awsvpc 网络模式(为 Fargate 启动类型所需),则目标组必须使用 ip 而不是 instance 作为目标类型。这是因为使用 awsvpc 网络模式的任务与弹性网络接口而不是 Amazon EC2 实例关联。

  4. (可选)如果选择创建新目标组,请按照下面所示填写以下字段:

    • 对于 Target group name (目标组名),为您提供了默认名称。

    • 对于 Target group protocol,输入用于将流量路由至您的任务的协议。

    • 对于 Health check path(运行状况检查路径),输入负载均衡器要向其发送运行状况检查 ping 的路径。

  5. Network Load Balancer 配置完成后,选择 Next Step(下一步)。