0

Ich habe EBS in Ecs-fähige Instanz in AWS eingebunden.Neustart von ecs-agent aus Benutzerdaten

Damit EBS für docker sichtbar ist, muss der docker-Dämon neu gestartet werden. Ich habe den Benutzerdaten entsprechende Befehle hinzugefügt. Aber ich kann den ecs- agent docker container nicht aus den Benutzerdaten starten.

Folgende sind meine Benutzerdaten:

#!/bin/bash 
echo ECS_CLUSTER=MYCLUSTER>> /etc/ecs/ecs.config 
mkfs -t ext4 /dev/sdb 
mkdir /db/ 
mount /dev/sdb /db/ 
service docker stop 
service docker start 
docker start ecs-agent 

auf SSH, ich konnte sehen, dass der ecs-Agent Container erstellt wird, aber es wird nicht ausgeführt. Wenn ich den Container manuell starte, funktioniert es. Was ist der richtige Weg, um es beim Starten der Instanz zu starten? Was fehlt mir in meinem Benutzerdatenskript?

Ich muss eine Startkonfiguration für die Verwendung in meiner Auto-Scaling-Gruppe erstellen. Instanzen sollten EBS aktiviert und für docker sichtbar sein.

Antwort

3

Wenn Sie den Docker-Daemon neu starten müssen, handelt es sich wahrscheinlich um eine vorhandene EC2-Instanz. In diesem Fall werden Benutzerdatenskripte Ihnen nicht weiterhelfen, da sie laut der EC2 User Guide "nur während des ersten Bootzyklus ausgeführt werden, wenn eine Instanz gestartet wird".

Der korrekte Start des ECS-Agenten beim Start der Instanz hängt davon ab, welche Distribution Sie ausführen. Für Amazon Linux-Instanzen empfiehlt die ECS Developer Guide die ecs-init Paket:

sudo yum install -y ecs-init 
sudo service docker start 
sudo start ecs 

(Wenn Sie dies in Ihrer Skripte Benutzerdaten, nicht sudo verwenden.)

+0

Dank. Mein AMI ist ecs-enabed. Also muss ich keine "yum install" machen. Aber ich habe die anderen zwei Schritte versucht. Docker Neustart ist nicht sauber. Der Start von ecs-agent scheint mit einem Fehler in devicemapper fehlzuschlagen. – Nataraj

+0

Meinst du, du verwendest ein [Amazon ECS-optimiertes AMI] (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)? In diesem Fall ist "ecs-init" vorinstalliert und verarbeitet die Initialisierung des ECS-Agenten, sodass Sie sich keine Gedanken darüber machen müssen, wie es beim Starten der Instanz korrekt gestartet werden kann. – rbarni