2016-09-21 6 views
1

私はDCOS 1.8クラスタをセットアップしました。現在、慣れ親しんでいます。 これまでのところ、私はJenkinsとHost Networkingを通じて魅力的な仕事をしています。今、私はオーバーレイを使って物事を設定しようとしています。 私はいくつかのテストコンテナを持っています。いくつかはdcosオーバーレイネットワークにありますが、いくつかはありません。これまでのところ、彼らはIPを介してお互いに接近することができます。しかし、私がmesos-dnsを使ってオーバーレイネットワーク上のコンテナを解決しようとすると、それが解決するのはホストアドレスです(まさに私が期待しているものではありません)。サービスディスカバリとDCOSオーバーレイネットワーク

私はそれを理解するためにマラソンでいくつかの周りを遊んだ。

{ 
    "volumes": null, 
    "id": "/mariadb10", 
    "cmd": null, 
    "args": null, 
    "user": null, 
    "env": { 
    "MYSQL_ROOT_PASSWORD": "foo" 
    }, 
    "instances": 1, 
    "cpus": 1, 
    "mem": 1024, 
    "disk": 0, 
    "gpus": 0, 
    "executor": null, 
    "constraints": null, 
    "fetch": null, 
    "storeUrls": null, 
    "backoffSeconds": 1, 
    "backoffFactor": 1.15, 
    "maxLaunchDelaySeconds": 3600, 
    "container": { 
    "docker": { 
     "image": "mariadb:10.0", 
     "forcePullImage": false, 
     "privileged": false, 
     "network": "USER" 
    }, 
    "type": "DOCKER", 
    "volumes": [ 
     { 
     "containerPath": "/var/lib/mysql", 
     "hostPath": "/mnt/foo", 
     "mode": "RW" 
     } 
    ] 
    }, 
    "healthChecks": [ 
    { 
     "protocol": "TCP", 
     "gracePeriodSeconds": 30, 
     "intervalSeconds": 10, 
     "timeoutSeconds": 10, 
     "maxConsecutiveFailures": 3, 
     "port": 3306 
    } 
    ], 
    "readinessChecks": null, 
    "dependencies": null, 
    "upgradeStrategy": { 
    "minimumHealthCapacity": 1, 
    "maximumOverCapacity": 1 
    }, 
    "labels": null, 
    "acceptedResourceRoles": null, 
    "ipAddress": { 
    "networkName": "dcos", 
    "discovery": { 
     "ports": [ 
      { "number": 3306, "name": "mysql", "protocol": "tcp" } 
      ] 
    } 
    }, 
    "residency": null, 
    "secrets": null, 
    "taskKillGracePeriodSeconds": null 
} 

マラソンは「ブリッジ」または「ユーザー」のネットワークで許可されていない私にこのことを伝えます:私がやったことはipAddressのに発見ブロックを追加しました。しかし、それは次のように文句を言うと、コンテナを立ち上げませんでした:

{ 
"volumes": null, 
"id": "/mariadb10", 
"cmd": null, 
"args": null, 
"user": null, 
"env": { 
    "MYSQL_ROOT_PASSWORD": "foo" 
}, 
"instances": 1, 
"cpus": 1, 
"mem": 1024, 
"disk": 0, 
"gpus": 0, 
"executor": null, 
"constraints": null, 
"fetch": null, 
"storeUrls": null, 
"backoffSeconds": 1, 
"backoffFactor": 1.15, 
"maxLaunchDelaySeconds": 3600, 
"container": { 
    "docker": { 
    "image": "mariadb:10.0", 
    "forcePullImage": false, 
    "privileged": false, 
    "network": "USER" 
    }, 
    "type": "DOCKER", 
    "volumes": [ 
    { 
     "containerPath": "/var/lib/mysql", 
     "hostPath": "/mnt/foo", 
     "mode": "RW" 
    } 
    ] 
}, 
"healthChecks": [ 
    { 
    "protocol": "TCP", 
    "gracePeriodSeconds": 30, 
    "intervalSeconds": 10, 
    "timeoutSeconds": 10, 
    "maxConsecutiveFailures": 3, 
    "port": 3306 
    } 
], 
"readinessChecks": null, 
"dependencies": null, 
"upgradeStrategy": { 
    "minimumHealthCapacity": 1, 
    "maximumOverCapacity": 1 
}, 
"labels": null, 
"acceptedResourceRoles": null, 
"ipAddress": { 
    "networkName": "dcos" 
}, 
"residency": null, 
"secrets": null, 
"taskKillGracePeriodSeconds": null 
} 

おかしい事は、それはもうオーバーレイアドレスを使用していない、であるが、現在のホストに耳を傾け対処し、また、ホストがオーバーレイネットワークに取り組む発表します。

ちょうど間違っているのですか、それとも期待どおりに動作しませんか?

答えて

1

だから、

解決策は自分で見つかりました。簡単な回避策は/opt/mesosphere/etc/mesos-dns.jsonを編集することです。次に、IPSinの順序を変更して、netinfoを最初にリストします。

詳細については、あなたも、あなたがtaskname.marathon.containerip.dcos.thisdcos.directoryを使用することができ、またhere

関連する問題