最近、marathon-lbを使用してDCOSでアプリケーションの負荷分散を行うチュートリアルを行っています(例:nginxの一部のコンテナ:https://dcos.io/docs/1.9/networking/marathon-lb/marathon-lb-advanced-tutorial/)。私はこのアプローチを使用して、自分のカスタムアプリケーションの負荷を内部的にバランスさせようとしています。私が使っているカスタムアプリは、プレイスカラアプリです。私は内部マラソン - ポンドをセットアップして、それをnginxのコンテナに使用することはできますが、自分のドッカーイメージを使用しようとすると、これを動作させることができません。私は自分のカスタムイメージでサービスを開始し、割り当てられたIPとポートを使用してサービスにアクセスできます(つまり、サービスが10.0.0.0にデプロイされ、ポート1234で利用可能な場合、curl http://10.0.0.0:1234/
は期待通りに機能し、アプリケーションルートで定義されているように私のapi呼び出しを行うこともできます)。私は(10002サービスポートがあるcurl -i http://marathon-lb-internal.marathon.mesos:10002
、)ロード・バランサを介してアプリにアクセスしようとすると、しかし、その後、私はこのメッセージを得る:参考DCOSを使用してMarathon-lb経由でサービスに接続できません
HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html
<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>
を、ここで私は起動に使用しています私のJSONファイルがあります私のカスタムサービス:
{
"id": "my-app",
"container": {
"type": "DOCKER",
"docker": {
"image": "my_repo/my_image:1.0.0",
"network": "BRIDGE",
"portMappings": [
{ "hostPort": 0, "containerPort": 9000, "servicePort": 10002, "protocol": "tcp" }
],
"parameters": [
{ "key": "env", "value": "USER_NAME=user" },
{ "key": "env", "value": "USER_PASSWORD=password" }
],
"forcePullImage": true
}
},
"instances": 1,
"cpus": 1,
"mem": 1000,
"healthChecks": [{
"protocol": "HTTP",
"path": "/v1/health",
"portIndex": 0,
"timeoutSeconds": 10,
"gracePeriodSeconds": 10,
"intervalSeconds": 2,
"maxConsecutiveFailures": 10
}],
"labels":{
"HAPROXY_GROUP":"internal"
},
"uris": [ "https://s3.amazonaws.com/my_bucket/my_docker_credentials" ]
}
こんにちは、これを解決しましたか?もしそうでなければ、私はそれを送るでしょう!ありがとう! –