私はMarathonを使用してDockerコンテナ化されたnode.jsアプリケーションをデプロイしています。次のように私のマラソンアプリの仕様は次のとおりです。コンテナ化されたnode.JSアプリケーションのmesos-marathonによるデプロイ
{
"id": "<some-name>",
"cmd": null,
"cpus": 1,
"mem": 2800,
"disk": 30720,
"instances": 1,
"container": {
"docker": {
"image": "<some-docker-registry-IP>:5000/<repo>",
"network": "BRIDGE",
"privileged": true,
"forcePullImage": true,
"parameters": [
{
"key": "net",
"value": "host"
}
],
"portMappings": [
{
"containerPort": <some-port>,
"hostPort": <some-port>,
"protocol": "tcp",
"name": null
}
]
},
"type": "DOCKER"
}
}
問題は、しかし、これはそれがメモリ不足になると、アプリケーションがデプロイされて自分のサーバーの再起動につながるということです。ホストマシンのプライベートIPを聞くために私のサービスが必要なので、--net=host
を使用しています。
メモリを解放してサーバーを再起動/シャットダウンせずにMarathonを再起動できるようにタスクを強制終了できますか?または、--net=host
を使用せずにDockerコンテナを外部にルーティングできるようにする他の方法はありますか?