.net AWS ECS服务设置问题-工作然后停止并引发CapacityProviderReservation警报

camsedfj  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(156)

我正在尝试将我的服务(用.Net 6编写)迁移到AWS ECS。在我的公司,我们决定在这里采取婴儿步骤,首先将其作为一个具有单个任务和单个示例的单个服务。我们还希望使用Rollout部署来模拟当前的设置-所以我们首先杀死服务,然后部署一个新版本(新的Docker镜像),如果失败,我们不会回滚-只是修复发布。太过时了,没有ECS的所有好处。
我们所创造的,

  • Linux EC2型ECS集群
  • 带NAT和网络负载均衡器的VPC网络
  • 我们的服务任务有两个Docker镜像,分别使用Nginx和Net Core WebApi
  • 新的CodeBuild将构建和容器化我们的Net Core Service
  • Powershell脚本来自动化这个过程

Powershell脚本执行以下操作:

  • 从分支触发一个新的构建,这将导致一个新的Docker镜像被推送到ECR
  • 使用以下命令停止服务:
  1. $updateOutput = aws ecs update-service `
  2. --cluster $ClusterName `
  3. --service $ServiceName `
  4. --desired-count 0 `
  5. --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=false}" `
  • 使用以下命令启动服务:
  1. $updateOutput = aws ecs update-service `
  2. --cluster $ClusterName `
  3. --service $ServiceName `
  4. --desired-count 1 `
  5. --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=false}" `
  6. --force-new-deployment

如果部署失败,我们再次使用相同的命令停止服务。
这是一种基本的,甚至是原始的做法,但这是我们的出发点。
正在发生的事情:

  • 一切正常,我们可以部署和重新部署服务,并在部署失败的版本后停止
  • 服务正在响应REST调用
  • 我们看到了日志
    ***然而,**一段时间后,新部署失败,没有日志,我们无法做任何事情。此外,我们在CloudWatch中收到警报:CapacityProviderReservation(1分钟内1个数据点的CapacityProviderReservation > 100)

我们被困在这里不知道下一步该怎么办...
对于如何调查问题的根本原因有什么建议吗?或者在设置中改变什么等等。非常受欢迎。

lbsnaicq

lbsnaicq1#

为什么不用法盖特您可以避免担心整个集群的扩展。

相关问题