J'ai récemment parcouru le didacticiel pour les applications d'équilibrage de charge dans DCOS en utilisant marathon-lb (dans l'exemple, ils équilibrent certains conteneurs nginx: https://dcos.io/docs/1.9/networking/marathon-lb/marathon-lb-advanced-tutorial/). J'essaie d'utiliser cette approche pour équilibrer la charge interne de ma propre application personnalisée. L'application personnalisée que j'utilise est une application Play Scala. J'ai le marathon-lb interne mis en place et peut l'utiliser avec succès pour le conteneur nginx, mais quand j'essaie d'utiliser ma propre image docker je ne peux pas obtenir ce pour fonctionner. Je démarre mon service avec mon image personnalisée et je peux accéder au service en utilisant l'IP et le port qui lui est assigné (ie si le service est déployé sur 10.0.0.0 et est disponible sur le port 1234 alors curl http://10.0.0.0:1234/
fonctionne comme prévu et Je peux aussi faire mes appels API comme définis dans mes routes d'application). Cependant, lorsque je tente d'accéder à l'application par l'équilibreur de charge (curl -i http://marathon-lb-internal.marathon.mesos:10002
, où 10002 est le port de service) alors je reçois ce message:Impossible de se connecter au service via Marathon-lb utilisant DCOS
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>
Pour référence, voici mon fichier JSON J'utilise pour commencer mon service personnalisé:
{
"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" ]
}
Salut, as-tu résolu celui-ci? Sinon, je vais l'envoyer! Merci! –