2017-10-18 1 views
0

Ich habe einen laufenden Mesos/Marathon-Cluster, aber die IP der laufenden Instanzen wird nicht an die Marathon-UI oder den Traefik-Proxy weitergegeben.IP laufender Instanzen wird nicht weitergegeben

Mein Mesos Setup:

ExecStart=/bin/bash -c "/usr/sbin/mesos-slave \ 
      --hostname=$(/usr/bin/hostname) \ 
      --work_dir=/var/lib/mesos \ 
      --master=zk://xxx.net:2181,yyy:2181,zzz:2181/mesos \ 
      --log_dir=/var/log/mesos \ 
      --executor_registration_timeout=10mins \ 
      --containerizers=docker,mesos \ 
      --docker=$(which docker) \ 
      --ip=$(ifconfig eth0 | grep -oP 'inet \K\S+')" 

Mein treafik conf:

logLevel = "INFO" 
[web] 
address = ":8088" 
[marathon] 
endpoint = "http://xxx:8080" 
watch = true 
domain = "xxx" 
exposedByDefault = true 
groupsAsSubDomains = true 
forceTaskHostname = true 

[accessLog] 

enter image description here enter image description here

UPDATE: Die Anwendungsdefinition ist:

{ 
    "id": "/web", 
    "cmd": null, 
    "cpus": 1, 
    "mem": 64, 
    "disk": 0, 
    "instances": 1, 
    "acceptedResourceRoles": [ 
    "*" 
    ], 
    "container": { 
    "type": "DOCKER", 
    "volumes": [], 
    "docker": { 
     "image": "ldaume/caddy", 
     "network": "BRIDGE", 
     "portMappings": [ 
     { 
      "containerPort": 2015, 
      "hostPort": 0, 
      "servicePort": 10001, 
      "protocol": "tcp", 
      "labels": {} 
     } 
     ], 
     "privileged": false, 
     "parameters": [], 
     "forcePullImage": false 
    } 
    }, 
    "portDefinitions": [ 
    { 
     "port": 10001, 
     "protocol": "tcp", 
     "labels": {} 
    } 
    ] 
} 

Die App ist zugänglich, wenn ich den Marathon DNS mit dem angegebenen Port verwende.

+0

Können Sie bitte angeben, welche Version von Marathon Sie verwenden und eine bereinigte App-Definition hinzufügen? Ivan im Marathon-Team sagt: "Wenn es Marathon 1.5.x ist, dann ist die Antwort wahrscheinlich einfach, denn Marathon ist veraltet, und es gibt einige bahnbrechende Änderungen in Bezug auf Netzwerke in Version 1.5. Das gleiche gilt wahrscheinlich auch für Traefik". Obwohl es für traefik unter Berücksichtigung der folgenden Antwort möglicherweise nicht dasselbe ist. –

+0

Aus Gründen @JudithMalnick. Ich benutze Mesos 1.4 mit Marathon 1.4.8 (versuchte 1.5.1 vorher) auf Debian Stretch (9) und Traefik 1.4 – Lenny

+0

Süße, danke! Können Sie Ihre Anwendung oder Pod-Definition hinzufügen? –

Antwort

0

Ich habe das gleiche Setup wie Sie und ich habe meine Berichterstattung korrekt. Ich benutze 1.4 Traefik. Traefik Config ist sehr einfach:

################################################################ 
# Global configuration 
################################################################ 

defaultEntryPoints = ["http"] 


################################################################ 
# Web configuration backend 
################################################################ 

[web] 
    address = ":8081" 

################################################################ 
# Marathon configuration backend 
################################################################ 


[marathon] 
    endpoint = "http://172.31.xx.xx:8080" 

    domain = "marathon.localhost" 

    watch = true 

...... Das ist ein AWS-Setup mit Docker Containern, in denen Endpunkt ist die interne VPC IP, nicht die externe AWS IP.

Verwandte Themen