本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

ecs-deploy Docker 镜像下载 - 轩辕镜像

ecs-deploy 镜像详细信息和使用指南

ecs-deploy 镜像标签列表和版本信息

ecs-deploy 镜像拉取命令和加速下载

ecs-deploy 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

ecs-deploy
in4it/ecs-deploy
自动构建

ecs-deploy 镜像详细信息

ecs-deploy 镜像标签列表

ecs-deploy 镜像使用说明

ecs-deploy 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

ecs-deploy是连接CI与ECS的桥梁,通过REST API和Web UI实现ECS服务的自动化部署、管理与扩展,支持基于JSON/YAML配置文件的部署流程,解决CI工具与ECS集成不足的问题。
0 次下载activein4it镜像

ecs-deploy 镜像详细说明

ecs-deploy 使用指南

ecs-deploy 配置说明

ecs-deploy 官方文档

ecs-deploy

镜像概述和主要用途

ecs-deploy是一个用Go编写的REST API服务器,用于从任何地方部署ECS服务,通常作为部署流水线的一部分。由于Jenkins、CircleCI、Bitbucket等持续集成(CI)软件往往缺乏与ECS的原生集成,该API服务器可部署在ECS上,提供ECS的持续部署能力,解决CI工具与ECS集成不足的问题。

核心功能和特性

  • 在DynamoDB中注册服务
  • 创建ECR仓库
  • 创建必要的IAM角色
  • 创建ALB目标和监听器规则
  • 基于JSON/YAML输入创建和更新ECS服务
  • 支持SAML的Web UI,可用于重新部署/回滚版本、添加/更新/删除参数、查看事件/容器日志、扩缩容以及运行手动任务
  • 支持ECS容器实例的扩容和缩容

Web UI演示

使用场景和适用范围

适用于需要将CI/CD流水线与AWS ECS集成的场景,特别是当现有CI工具缺乏原生ECS部署能力时。可用于自动化部署流程、管理ECS服务生命周期(部署、回滚、扩缩容)、监控服务状态和日志,以及配置自动扩缩容策略,适用于开发、测试和生产环境的ECS集群管理。

使用方法和配置说明

下载

可从发布页面下载ecs-deploy和ecs-client,或使用Docker Hub镜像。

引导ECS集群

使用ecs-deploy可以引导新的ECS集群,自动设置自动扩缩组、ALB、IAM角色和ECS集群:

bash
./ecs-deploy --bootstrap \
  --alb-security-groups sg-*** \  # ALB安全组
  --cloudwatch-logs-enabled \        # 启用CloudWatch日志
  --cloudwatch-logs-prefix mycompany \ # CloudWatch日志前缀
  --cluster-name mycluster \          # 集群名称
  --ecs-desired-size 1 \              # ECS期望实例数
  --ecs-max-size 1 \                  # ECS最大实例数
  --ecs-min-size 1 \                  # ECS最小实例数
  --ecs-security-groups sg-*** \   # ECS安全组
  --ecs-subnets subnet-*** \       # ECS子网
  --environment staging \             # 环境(如staging、prod)
  --instance-type t2.micro \          # 实例类型
  --key-name mykey \                  # SSH密钥名称
  --load***-domain cluster.in4it.io \ # ALB域名
  --paramstore-enabled \              # 启用参数存储
  --paramstore-kms-arn aws:arn:kms:region:accountid:key/1234 \ # KMS ARN
  --paramstore-prefix mycompany \     # 参数存储前缀
  --profile your-aws-profile \        # AWS凭证配置文件
  --region your-aws-region            # AWS区域(必填)

注意:需先创建安全组和VPC/子网。ALB安全组应允许80/443端口入站,ECS安全组应允许来自ALB的32768-61000端口流量。如需删除集群,将--bootstrap替换为--delete-cluster

使用Terraform引导集群

也可通过Terraform部署ECS集群,详见Terraform模块文档。

部署到ECS集群

使用ecs-client部署示例服务(如nginx和echoserver):

交互式登录

bash
./ecs-client login --url [***]

使用环境变量登录

bash
ECS_DEPLOY_LOGIN=deploy ECS_DEPLOY_PASSWORD=password ./ecs-client login --url [***]

部署服务

bash
./ecs-client deploy -f examples/services/multiple-services/multiple-services.yaml

配置说明(环境变量)

AWS相关变量

  • AWS_REGION=region:AWS区域(必填

认证变量

  • JWT_SECRET=secret:JWT加密密钥(必填
  • DEPLOY_PASSWORD=deploy:部署用户密码(必填
  • DEVELOPER_PASSWORD=developer:开发用户密码(必填

服务部署相关变量(部署服务时使用)

  • AWS_ACCOUNT_ENV=dev|staging|testing|qa|prod:AWS账户环境标识
  • PARAMSTORE_ENABLED=yes:是否启用参数存储(默认:no)
  • PARAMSTORE_PREFIX=mycompany:参数存储前缀(如设为mycompany,参数路径为/mycompany/服务名/变量
  • PARAMSTORE_KMS_ARN=:用于加密/解密参数的KMS ARN
  • CLOUDWATCH_LOGS_ENABLED=yes:是否启用CloudWatch日志(默认:no)
  • CLOUDWATCH_LOGS_PREFIX=mycompany:CloudWatch日志前缀
  • LOAD***_DOMAIN=mycompany.com:负载均衡器域名

DynamoDB变量

  • DYNAMODB_TABLE=Services:存储服务信息的DynamoDB表名(默认:Services)

ECR变量

  • ECR_SCAN_ON_PUSH=true:是否启用ECR镜像推送时扫描(默认:false)

SAML认证变量(启用SAML时需配置)

  • SAML_ENABLED=yes:启用SAML认证(默认:no)
  • SAML_ACS_URL=[***]:SAML断言消费者服务URL
  • SAML_CERTIFICATE=证书内容:SAML证书内容
  • SAML_PRIVATE_KEY=私钥内容:SAML私钥内容
  • SAML_METADATA_URL=[***]:身份提供商元数据URL

生成SAML密钥和证书的命令:

bash
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 3650 -nodes -subj "/CN=myservice.mycompany.com"

自动扩缩容配置

自动扩缩容设置

通过以下步骤启用自动扩缩容:

  1. 创建SNS主题,添加HTTPS订阅(URL:[***]
  2. 创建ECS任务/服务的CloudWatch事件规则
  3. 创建EC2自动扩缩组生命周期钩子,并配置CloudWatch事件触发SNS主题

自动扩缩容策略

  • 扩容触发条件:当集群中最大容器(按资源计算)无法调度时触发扩容
  • 缩容触发条件:当移除一个节点后仍有足够容量容纳最大容器(含缓冲)时触发缩容

自动扩缩容配置参数(环境变量)

环境变量默认值描述
PARAMSTORE_ENABLEDno是否启用参数存储(使用"yes"启用)
PARAMSTORE_PREFIX""参数存储前缀(如设为mycompany,参数路径为/mycompany/服务名/变量
PARAMSTORE_KMS_ARN""用于加密/解密参数的KMS ARN
PARAMSTORE_INJECTno是否将密钥注入任务定义(使用"Yes"启用)
AUTOSCALING_STRATEGIESLargestContainerUp,LargestContainerDown应用的自动扩缩容策略列表(见下方策略类型)
AUTOSCALING_DOWN_STRATEGYgracefully缩容策略(目前仅支持gracefully:在执行缩容前检查资源使用情况)
AUTOSCALING_UP_STRATEGYimmediately扩容策略(immediately:立即扩容;gracefully:检查后扩容)
AUTOSCALING_DOWN_COOLDOWN5缩容后冷却时间(分钟)
AUTOSCALING_DOWN_INTERVAL60缩容检测后,检查资源使用情况的时间间隔(秒)
AUTOSCALING_DOWN_PERIOD5缩容前检查资源使用情况的周期数
AUTOSCALING_UP_COOLDOWN5扩容后冷却时间(分钟)
AUTOSCALING_UP_INTERVAL60扩容检测后,检查资源使用情况的时间间隔(秒)
AUTOSCALING_UP_PERIOD5扩容前检查资源使用情况的周期数
SERVICE_DISCOVERY_TTL60服务发现记录的TTL(秒)
SERVICE_DISCOVERY_FAILURETHRESHOLD3服务发现记录的故障阈值
AWS_RESOURCE_CREATION_ENABLEDyes是否允许ecs-deploy自动创建AWS IAM资源
SLACK_WEBHOOKS""逗号分隔的Slack Webhook(可选指定频道,格式:url1:#channel,url2:#channel)
SLACK_USERNAMEecs-deploySlack通知用户名
ECS_TASK_ROLE_PERMISSION_BOUNDARY_ARN""ECS任务角色的权限边界ARN
ECR_SCAN_ON_PUSHfalse是否启用ECR镜像推送时扫描
DEPLOY_MAX_WAIT_SECONDS900部署超时等待时间(秒,默认15分钟)

自动扩缩容策略类型

策略名称描述
LargestContainerUp当集群中最大容器(含缓冲)无法在现有节点上调度时触发扩容
LargestContainerDown当移除一个节点后仍有足够容量容纳最大容器(含缓冲)时触发缩容
Polling每分钟轮询所有服务,检查是否因资源不足导致任务无法调度(每秒最多1次调用,每次10个服务)

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"