2017-11-10 3 views
0

ich folgende Fehlermeldung erhalte, wenn auf einer anderen EC2-Instanz einen Schwarm Master auf einer EC2-Instanz auf eine Registrierung mit dem Konsul zu zeigen versucht:nicht in der Lage auf einem anderen EC2 Schwarm Master auf EC2 Konsul Registrierung Punkt

Running pre-create checks... 
Creating machine... 
(swarm-master) Launching instance... 
Waiting for machine to be running, this may take a few minutes... 
Detecting operating system of created instance... 
Waiting for SSH to be available... 
Detecting the provisioner... 
Provisioning with ubuntu(systemd)... 
Installing Docker... 
Copying certs to the local machine directory... 
Copying certs to the remote machine... 
Setting Docker configuration on the remote daemon... 
Error creating machine: Error running provisioning: ssh command error: 
command : sudo systemctl -f start docker 
err  : exit status 1 
output : Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 

Ich habe Tipps notiert, die direkt auf einen Docker-Engine-Speicherort zeigen, auf die neueste Docker-Computer-Version aktualisiert und den Port 8500 in der Sicherheitsgruppe der Registrierungs-EC2 geöffnet haben, aber das hat mein Problem nicht gelöst.

Hier ist, wie ich laufen:

Registrierung erstellen:

docker-machine create \ 
     --driver amazonec2 \ 
     --amazonec2-vpc-id vpc-12345678 \ 
     --amazonec2-region us-east-1 \ 
     --amazonec2-zone b \ 
     --amazonec2-instance-type t2.micro \ 
     --amazonec2-subnet-id subnet-12345678 \ 
     --amazonec2-security-group swarm_sg \ 
     --amazonec2-keypair-name swarm \ 
     --amazonec2-ssh-keypath ~/.docker/machine/certs/swarm \ 
     swarm-registry 

nehmen Registry Maschine

eval $(docker-machine env swarm-registry) 

laufen Konsul

docker run -d \ 
     -p "8500:8500" \ 
     -h "consul" \ 
     progrium/consul -server -bootstrap 

Schwarm Master erstellen:

docker-machine create \ 
     --driver amazonec2 \ 
     --amazonec2-vpc-id vpc-12345678 \ 
     --amazonec2-region us-east-1 \ 
     --amazonec2-zone b \ 
     --amazonec2-instance-type t2.micro \ 
     --amazonec2-subnet-id subnet-12345678 \ 
     --amazonec2-security-group swarm_sg \ 
     --amazonec2-keypair-name swarm \ 
     --amazonec2-ssh-keypath ~/.docker/machine/certs/swarm \ 
     --engine-install-url="https://web.archive.org/web/20170623081500/https://get.docker.com" \ 
     --swarm \ 
     --swarm-master \ 
     --swarm-discovery="consul://172.31.56.214:8500" \ 
     --engine-opt="cluster-store=consul://172.31.56.214:8500" \ 
     --engine-opt="cluster-advertise=eth1:2376" \ 
     swarm-master 

wo 172.31.56.214 ist die private IP-Adresse des Schwarms-Registry Host EC2 der Maschine. Außerdem habe ich kein Problem, wenn ich ohne Consul auf Consul zeige. das heißt, das Erstellen des Masters ohne die folgenden Zeilen ist möglich:

 --swarm-discovery="consul://172.31.56.214:8500" \ 
     --engine-opt="cluster-store=consul://172.31.56.214:8500" \ 
     --engine-opt="cluster-advertise=eth1:2376" \ 

Jede Hilfe wird herzlichst geschätzt.

Antwort

0

Mein Problem war mein Netzwerkschnittstellenname war nicht eth1. Es ist eth0. Abgesehen davon wäre ich daran interessiert zu verstehen, wie AWS-Schnittstellen benannt werden. Sie scheinen sich über unsere EC2-Instanztypen zu unterscheiden (z. B. eth0, eth1, ens3).