Um membro do CoreOS precisa ter um ip público para se juntar a um cluster do etcd2?

1

Eu estou iniciando 5 membros do core2 EC2 em uma sub-rede privada. Em seguida, atribua um ip elástico a um dos membros. Parece que apenas aquele com um ip designado pode juntar-se ao cluster do etcd2, e está esperando perpetuamente pelos outros 4.

aqui está o meu 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"

aqui estão os erros do membro com um ip público

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

os outros 4 membros não chegam tão longe

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'.

Regras de entrada do grupo de segurança

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

Eu testei isso tanto no canal estável do CoreOS quanto no canal alfa

    
por theRemix 02.03.2016 / 07:32

2 respostas

0

Eu acertei o mesmo problema recentemente. Parece que o endereço público não é tanto a exigência do etcd2 como é exigido pelos Gateways da Internet no VPC. A documentação documentação diz:

Ensure that instances in your subnet have public IP addresses or Elastic IP addresses.

    
por 14.03.2016 / 10:18
0

Eu girei o cluster com as mesmas configurações, exceto que eu habilitei "Auto assign public ip" ao criar as instâncias, e tudo apenas funcionou ™

Ainda não sei por que cada membro precisa de um ip público, já que eles estão apenas anunciando seu $ private_ipv4 dentro da rede.

------ editar ------

Descobri que o problema "corrigido" pela atribuição automática de um ip público era que ele agora tinha acesso à Internet (https 443)

Agora que eu sei disso, eu coloquei todos os meus membros de cluster em uma sub-rede privada conectada a um NAT para 80.443 e agora funciona.

    
por 02.03.2016 / 16:24