Amazon web services 亚马逊ECS的最低健康百分比和最高健康百分比是多少

Amazon web services 亚马逊ECS的最低健康百分比和最高健康百分比是多少,amazon-web-services,docker,amazon-ec2,amazon-ecs,Amazon Web Services,Docker,Amazon Ec2,Amazon Ecs,我已经有了Docker和EC2方面的经验。但我对ECS还是新手。有人能帮我理解这两个参数的实际作用,它们的区别和用法吗 说: 最小健康百分比表示部署期间必须保持运行状态的服务任务数的下限,即所需任务数的百分比(四舍五入到最接近的整数)。此参数使您能够在不使用额外群集容量的情况下进行部署。例如,如果您的服务具有所需数量的四个任务,且最低健康百分比为50%,则计划程序可能会在启动两个新任务之前停止两个现有任务以释放群集容量。不使用负载平衡器的服务的任务如果处于运行状态,则视为正常任务;如果确实使用负

我已经有了Docker和EC2方面的经验。但我对ECS还是新手。有人能帮我理解这两个参数的实际作用,它们的区别和用法吗

说:

最小健康百分比表示部署期间必须保持运行状态的服务任务数的下限,即所需任务数的百分比(四舍五入到最接近的整数)。此参数使您能够在不使用额外群集容量的情况下进行部署。例如,如果您的服务具有所需数量的四个任务,且最低健康百分比为50%,则计划程序可能会在启动两个新任务之前停止两个现有任务以释放群集容量。不使用负载平衡器的服务的任务如果处于运行状态,则视为正常任务;如果确实使用负载平衡器的服务的任务处于运行状态,并且负载平衡器将其承载的容器实例报告为健康,则认为这些任务是健康的。控制台中最小健康百分比的默认值为50%,AWS CLI、AWS SDK和API的默认值为100%

最大百分比参数表示部署期间允许处于运行或挂起状态的服务任务数的上限,表示所需任务数的百分比(向下舍入到最接近的整数)。此参数允许您定义部署批大小。例如,如果您的服务具有所需数量的四个任务,且最大百分比值为200%,则计划程序可能会在停止四个旧任务之前启动四个新任务(前提是执行此操作所需的群集资源可用)。最大百分比的默认值为200%

我仍然没有弄清楚这两个参数

  • 使用最小健康百分比,如果我的服务具有所需的4个任务数和最小健康百分比25%,计划程序将启动/停止多少现有/新任务
  • 最大百分比时,如果我的服务具有所需数量的4个任务,最大百分比值为50%,那么计划程序将启动/停止多少现有/新任务
  • 如果我的服务只有一个正在运行的任务,那么如何设置这些参数以停止现有任务并运行新任务
  • 如果所需任务为4,最低运行状况为25%,则在部署期间,允许ECS在开始新任务之前停止除1之外的所有任务
  • 最大值应为100+,这样配置就没有意义了。但是,如果您有4个所需的任务,并且最大为150%,则允许ECS在停止其他任务之前启动2个新任务
    • 如果要确保在重新部署期间运行的任务不会超过1个,则需要将“所需”设置为1,最小值设置为0%,最大值设置为100%
    • 如果要确保始终至少有一个任务在运行,则需要将“所需”设置为1,最小值设置为100%,最大值设置为200%
  • 其他例子。如果您希望4,最低为50%,最高为150%。然后ECS可以决定在部署期间做什么

    • 如果集群没有更多资源,它可以决定停止2个任务,在新版本中启动2个新任务,等待新任务正常运行。然后停止剩下的两个任务,开始两个新任务
    • 如果集群有更多的资源,那么ECS可以决定在停止现有任务之前启动两个新任务

    或者你可以这样看。在重新部署期间,ECS需要在MinimumPercent/100*期望任务和MaximumPercent/100*期望任务之间运行。在这种情况下,在2-6个任务之间。

    在我的情况下,使用一个容器执行一个任务,一切正常。我无法运行多个容器。任务中的每个容器都会自动停止。如果使用守护进程策略,您只需要1个EC2实例,并且将最小值设置为100%,会发生什么。如果您通过添加希望部署同一服务的新版本来“重新部署”。它会被阻止这样做吗?还是将强制关闭该1个服务任务并部署新的服务任务?@CMCDRANGKAI由于守护程序服务自动具有max=100,设置min=100将导致错误:“maximumPercent和minimumHealthyPercent都不能为100,因为这将阻止部署。”在一个实例上,您需要精确的min=0才能部署。min>0意味着在部署期间至少需要有一个任务保持运行。对于2个实例,min最多可以是50,对于3个实例,min最多可以是66,以此类推。如果您坚持使用1个实例,副本策略将适合您所描述的情况,因为您可以设置,例如,最小值=100和最大值=200,前提是您的实例具有用于这两项任务的资源。