2016-02-04 10 views
15

In allen Tutorials für ECS müssen Sie einen Cluster und danach eine Autoscaling-Gruppe erstellen, die Instanzen erzeugt. Irgendwie tauchen die Instanzen in all diesen Tutorials magisch im Cluster auf, aber niemand gibt einen Hinweis darauf, was die Autoscaling-Gruppe und den Cluster verbindet.Wie kann ich meine Autoscaling-Gruppe mit meinem ecs-Cluster verbinden?

Meine Autoscaling-Gruppe erzeugt Instanzen wie erwartet, aber sie erscheinen nicht auf meinem ecs-Cluster, der meine docker-Definitionen enthält.

Wo ist die Verbindung, die ich vermisse?

Antwort

3

Nun, ich habe es herausgefunden. Alles über den ecs-agent und seine Konfigurationsdatei /etc/ecs/ecs.config (Diese Datei wird beim Erstellen von EC2-Instanzen über das Feld "Userdata" auch aus einer Autoscaling-Konfiguration erstellt.) Hier finden Sie Informationen zu den Konfigurationsoptionen hier: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html

Aber Sie können sogar eine ecs.config gespeichert auf Amazon S3, tun Sie es wie folgt aus (folgende Zeilen gehen in Userdata Feld) kopieren:

#!/bin/bash 
yum install -y aws-cli 
aws configure set default.s3.signature_version s3v4 
aws configure set default.s3.addressing_style path 
aws configure set default.region eu-central-1 
aws s3 cp s3://<bucketname>/ecs.config /etc/ecs/ecs.config 

Anmerkung: Signature_version v4 ist spezifisch für einige Regionen, wie eu-central-1. Diese OFC funktioniert nur, wenn Ihre IAM Rolle für die Instanz (in meinem Fall seine ecsInstanceRole) das Recht AmazonS3ReadOnlyAccess hat


Die AWS GUI-Konsole Art und Weise für das sein würde: Verwenden Sie den Cluster-Assistenten bei https://console.aws.amazon.com/ecs/home#/firstRun. Es wird ein Autoscaling grou für Ihren Cluster, ein Loadbalancer vor ihm, und verbinden Sie alles schön.

10

Eine Autoscaling-Gruppe ist keinem Cluster streng zugeordnet. Eine Autoscaling-Gruppe kann jedoch so konfiguriert werden, dass jede gestartete Instanz sich selbst in einem bestimmten Cluster registriert.

Die Registrierung einer Instanz in einem Cluster liegt in der Verantwortung des ECS Agent, der auf der Instanz ausgeführt wird. Wenn Sie Amazon ECS-optimized AMI verwenden, wird der ECS-Agent beim Booten der Instanz gestartet und registriert sich selbst unter configured cluster. Sie können den ECS-Agenten jedoch auch auf anderen Linux-AMIs verwenden, indem Sie the installation instructions folgen.

+0

Um ein bisschen mehr die Antwort abgeschlossen ist, das ist der Befehl erneut (Start) den Agenten benötigt: 'sudo ecs' starten. Verwenden Sie es nach dem Konfigurieren des Agenten. – RoberMP

14

Ich kämpfte mit dieser für eine Weile. Der Schlüssel zum Abrufen der Instanzen in der Autoscaling-Gruppe, die Ihrem ECS-Cluster zugeordnet ist, liegt in den Benutzerdaten. Wenn Sie Ihre Launch-Konfiguration erstellen, wenn Sie zu Schritt 3 "Details konfigurieren" gelangen, klicken Sie auf die Registerkarte Erweitert und geben Sie ein einfaches Bash-Skript wie das Folgende für Ihre Benutzerdaten ein.

#!/usr/bin/env bash 
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 

Alle verfügbaren Parameter für die Agentenkonfiguration hier http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html gefunden werden kann

+0

Ja, ich bin schon zu diesem Punkt gekommen. Aber danke, dass du das hier hinzugefügt hast. Sie können sogar die ecs.config von Amazon S3 laden. Ich füge das meiner Antwort hinzu. – cari