簡體   English   中英

AWS ECS容器實例

[英]AWS ECS container instance

我嘗試使用Ansible EC2模塊啟動ECS容器實例。

我的劇本如下。

- name: Launch ECS Container Instance
  ec2:
    key_name: "{{ ec2_keyname }}"
    instance_type: t2.micro
    image: ami-ca01d8ca
    wait: yes
    group: "{{ ec2_security_group }}"
    region: ap-northeast-1
    exact_count: 1
    vpc_subnet_id: "{{ ec2_subnet_id }}"
    count_tag:
      docker-registry: 1
    instance_profile_name: ecsInstanceRole
    instance_tags:
      Name: ECS_docker-registry
      docker-registry: 1
    assign_public_ip: yes

結果,啟動了兩個實例。 其中一個已按我的意願配置,但另一個具有我不想設置的以下標記。

  • aws:autoscaling:groupName
  • aws:cloudformation:logical-id
  • aws:cloudformation:stack-id
  • aws:cloudformation:stack-name

此外,我可以在ECS儀表板上找到這兩個實例。

在此處輸入圖片說明

但是它僅對群集“默認”可見,而對其他群集不可見。


我真正想做的

  • 啟動ECS容器實例
  • 將容器實例注冊到集群

如果可以使用aws-cli進行上述處理,則更好,但是首先,我應該了解容器實例的奇怪行為,然后手動進行。

要在ECS群集中注冊EC2容器實例,您可以使用以下幾種方法:

  1. 使用特殊的經過 Amazon ECS 優化的 AMI通過awscli或AWS控制台手動啟動具有自定義用戶數據的EC2實例(了解有關啟動Amazon ECS容器實例的更多信息):

    \n     #!/ bin / bash    \n     回聲ECS_CLUSTER =您的集群名稱>> /etc/ecs/ecs.config\n
  2. 由於AWS OpsWorks支持管理Amazon ECS容器實例,因此請使用AWS OpsWorks並創建ECS群集層 在這種情況下,OpsWoks將使層中的任何EC2實例與特定的ECS群集一起使用。

有一些限制:

  1. 每個OpsWorks Stack只能有一個ECS群集層
  2. 每個EC2實例只能分配給一個ECS集群

您還可以手動將EC2實例添加到ECS集群中:

  1. 使用以下行在/etc/ecs/ecs.config中創建一個文件:

     ECS_CLUSTER={{ name }} 

    其中{{name}}是您想要的群集名稱。

  2. 安裝ecs代理(程序包名稱為“ ecs-init”)並啟動它。

如果該實例尚不存在,它將創建該群集。

您可以嘗試使用ec2模塊的user_data字段。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

在ecs代理啟動之前,您需要在ecs.config具有以下內容。

#!/ bin / bash
回聲ECS_CLUSTER =您的集群名稱>> /etc/ecs/ecs.config

暫無
暫無

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

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