I am starting 5 coreos EC2 members all in a private subnet. Then assign one elastic ip to one of the members. It seems that only that one with an ip assigned can join the etcd2 cluster, and is perpetually waiting for the other 4.
here is my cloud-config
#cloud-config
coreos:
update:
reboot-strategy: "etcd-lock"
etcd2:
discovery: "https://discovery.etcd.io/_____hash_____"
advertise-client-urls: "http://$private_ipv4:2379"
initial-advertise-peer-urls: "http://$private_ipv4:2380"
listen-client-urls: "http://0.0.0.0:2379,http://0.0.0.0:4001"
listen-peer-urls: "http://$private_ipv4:2380,http://$private_ipv4:7001"
fleet:
public-ip: "$private_ipv4"
metadata: "region=us-west"
units:
- name: "etcd2.service"
command: "start"
- name: "fleet.service"
command: "start"
here are errors from the member with a public ip
error #0: client: etcd member https://discovery.etcd.io returns server error [Gateway Timeout]
waiting for other nodes: error connecting to https://discovery.etcd.io, retrying in 4m16s
found self ae44c4332ec3c211 in the cluster
found 1 peer(s), waiting for 4 more
the other 4 members do not get as far
listening for peers on http://10.0.0.50:2380
listening for peers on http://10.0.0.50:7001
listening for client requests on http://0.0.0.0:2379
listening for client requests on http://0.0.0.0:4001
etcd2.service: Main process exited, code=exited, status=1/FAILURE
Failed to start etcd2.
etcd2.service: Unit entered failed state.
etcd2.service: Failed with result 'exit-code'.
Security group inbound rules
Custom TCP 7001 VPC subnet
SSH TCP 22 0.0.0.0/0
Custom TCP 4001 VPC subnet
Custom TCP 2379 VPC subnet
Custom TCP 2380 VPC subnet
i've tested this in both CoreOS stable channel, and alpha channel