IP escravo Mesos para instância de serviço lançada pelo Marathon (contêiner docker)

2

Eu tenho uma imagem docker Eu gostaria de lançar algumas instâncias de via Mesos / Marathon.

Estou usando a rede BRIDGE na janela de encaixe e gostaria de passar o endereço "público" (ou seja, não o contêiner docker0 net) do host mesos escravo / docker no qual o contêiner está sendo iniciado, para o contêiner inicial , via env var ou param, para que eu possa anunciar este ip nas respostas do aplicativo (o aplicativo é um nó do Cassandra, e eu vou preencher broadcast_address em cassandra.yaml com este endereço)

Meu entendimento é que eu posso ter o Mesos encaminhando qualquer porta em particular (dentro de um intervalo configurado) neste endereço de volta para o endereço docker0 do meu contêiner em execução. Se isso for verdade, e posso garantir que a instância do aplicativo (nó Cassandra) não seja movida desse escravo, com algumas restrições, posso ter um cluster do Cassandra mesos-planejado.

Minha pergunta é: como faço para que o endereço IP do escravo (host do docker) entre na instância do aplicativo Marathon quando ele está sendo lançado?

    
por pgn 05.12.2015 / 10:12

1 resposta

1

Você não sabe o endereço IP antes que a Marathon encontre um host adequado para a tarefa. No entanto, no momento do lançamento de uma tarefa no escravo Mesos, algumas propriedades são armazenadas em variáveis ENV:

...
ULIMIT=-n 8192
HOST=slave01.example.com
MESOS_SLAVE_PID=slave(1)@192.168.1.2:5051
MARATHON_APP_RESOURCE_CPUS=0.1
MESOS_TASK_ID=dummy.eb6e1d9a-c2f0-11e5-a58b-00259057db2f

Se você está bem com o nome do host, você pode usar a variável HOST ou extrair o endereço IP de MESOS_SLAVE_PID .

Se você iniciar mesos-slave com --ip=192.168.1.2 , a variável HOST e LIBPROCESS_IP ENV será configurada para o endereço do host. Para o pacote mesosfera:

echo "192.168.1.2" > /etc/mesos-slave/ip

e reinicie o escravo.

Outra opção é resolver o IP do agente dentro do contêiner do Docker:

AGENT_IP=$(getent hosts ${HOST} | awk '{ print $1 }')
    
por 25.01.2016 / 00:26