簡體   English   中英

ecs-cli使用負載均衡器組成服務

[英]ecs-cli compose service up with a load balancer

我正在嘗試使用ecs-cli撰寫來管理我在Amazon ECS上的服務和任務。

我無法找到使用service up命令創建帶有應用程序負載均衡器的新服務的方法(即使該負載均衡器已經存在)。

這似乎可以通過service create ,但API與service up API不同,我不知道如何使用create以相同的方式指定params。 通常最好只使用up命令來保持一致性。 文檔非常分散,有很多不同的方法可以做同樣的事情,只是想知道這里有什么最佳實踐。 任何建議都非常感謝。

值得注意的是,只要我有一個現有的任務定義,並且在指定負載均衡器的同時通過Amazon AWS GUI創建我的服務,一切都對我有用。 所以我正在考慮將所有的compose配置移動到task-definition.json中,並直接將它與aws ecs cli一起使用。

我有一個工作docker-compose.yml文件:

# docker-compose.yml

version: "3"

services:
  application:
    image: ${IMAGE_ARN}
    command: npm start
    ports:
      - "8000:8000"
  nginx:
    image: ${IMAGE_ARN}
    ports:
      - "80:80"

以及隨附的ecs-params.yml文件:

# ecs-params.yml

version: 1

task_definition:
  task_role_arn: ${ROLE_ARN}
  task_execution_role: ${ROLE_ARN}
  ecs_network_mode: awsvpc
  task_size:
    mem_limit: 0.5GB
    cpu_limit: 256
  container_definitions:
    - name: application
    - name: nginx

run_params:
  network_configuration:
    awsvpc_configuration:
      assign_public_ip: ENABLED
      subnets:
        - ${SUBNET_1_ID}
        - ${SUBNET_2_ID}
      security_groups:
        - ${SECURITY_GROUP_ID}

我運行以啟動服務的命令是:

ecs-cli compose service up \
--file docker-compose.yaml \
--ecs-params ecs-params.yaml \
--project-name service-name

通過該命令指定負載均衡器配置的任何方法?

看起來最新的ecs-cli版本確實支持負載平衡器配置和服務。

你試過提供--target-group-arn選項嗎? 假設您已創建ALB和目標組以關聯ECS服務。 這是我剛剛測試過的示例命令。

ecs-cli compose --file docker-compose.yaml --project-name nginx \
--ecs-params ecs-params.yaml service up \
--target-group-arn "arn:aws:elasticloadbalancing:us-east-1:xxxxxxxx:targetgroup/awsvpc-nginx/2bf8921935c827bd" \
--container-name nginx --container-port 80

注意 -

  1. target-group-arncontainer-namecontainer-port選項對於負載均衡器關聯是必需的,它們必須在service up后在命令中service up
  2. 我看到你正在嘗試使用awsvpc模式完成任務。 我不確定你是否想要調出EC2或Fargate型發射容器。
  3. 如果您確實需要awsvpc模式,那么請確保您的負載均衡器目標組具有使用type ip而不是instance創建的目標。
  4. 如果您使用的是EC2啟動類型但使用awsvpc模式,那么請確保EC2 AMI是Amazon-ECS優化的AMI。 如果您使用Fargate類型,那么您的assign_public_ip應該DISABLED

請告訴我您的反饋意見。

參考 - https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose-service.html

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM