3

CoreOS で Mesos および Ceph クラスターを実行し、Ceph RBD Docker ボリューム プラグインが動作していますが、これを Mesos/Marathon でどのように使用できるかは非常に不明です...rbd単一の Docker コンテナーのボリュームの作成/使用は問題なく動作しています。

Marathon を介したこれらのボリュームの自動作成 (および、Mesos スレーブ間の「タスク移行」の場合は再マッピング) を扱う記事/ブログ投稿/ものは見つかりません。私にとって特に重要なのは、各インスタンスに独自のボリュームが必要な場合にステートフル サービスの複数のインスタンスを実行する方法です ( Mesos/Marathon の MongoDB ReplicaSet を想像してください)。

私はMesosの永続的なボリュームのドキュメントを知っており、マラソンの問題も見ましたが、これがどのように、またはいつ使用可能になるかについてはまだ非常に混乱しています...

ここにもSOに関する他の質問があります:

残念ながら、この特定の問題に対する答えは実際にはありません。

RexRay を使用したEMC コードの例も、単一のインスタンスの例のみをカバーしていますが、これも上記のボリューム プラグインで簡単に処理できます。

{
    "id": "nginx",
    "container": {
        "docker": {
            "image": "million12/nginx",
            "network": "BRIDGE",
            "portMappings": [{
                "containerPort": 80,
                "hostPort": 0,
                "protocol": "tcp"
            }],
            "parameters": [{
                "key": "volume-driver",
                "value": "rbd"
            }, {
                "key": "volume",
                "value": "nginx-data:/data/www"
            }]
        }
    },
    "cpus": 0.2,
    "mem": 32.0,
    "instances": 1
}

このnginx-data場合、ボリュームは自動的に作成されます。しかし、永続ボリュームと複数のインスタンスを使用したい場合はどうすればよいでしょうか?

4

1 に答える 1

3

これは、Flocker が解決しようとしているユース ケースです。(免責事項: 私は ClusterHQ の CTO です)。Flocker <=> Mesos/Marathon インタラクションのデモについては、このブログ投稿を参照してください。これは、Flocker コントロール サービスが、クラスター化された設定に存在するコンテナー ボリュームの「信頼できる情報源」として機能する方法を示しています。その後、Flocker はオンデマンドで作成し、これらのボリュームを参照するコンテナーがクラスター内を移動するときに、ホスト間でこれらのボリュームのマッピングとマッピング解除を調整します。

Flocker はクラスター全体のボリューム名の名前空間を提供することでこれを行います。これらの名前は、Docker with Marathon の Flocker プラグインを介して使用され、Mesos クラスター内のステートフル コンテナーに移植性と高可用性を提供します。

Flocker には Ceph ドライバーもあります。

  • Google「Flocker Ceph ドライバー」

そしてCoreOSで動作します:

  • Google「CoreOS デモの Flocker」

各コンテナに独自のボリューム名 ( 、 など) を付けることで、マルチインスタンス ジョブ (レプリカ セットを使用した MongoDB など) を実行できmongo_1ますmongo_2

これらのピースをまとめるのは簡単なことではありませんが、喜んでお手伝いさせていただきます。必要に応じて、スタック (Ceph + CoreOS + Docker + Mesos + Marathon) に特化した詳細なガイドを作成できます。

于 2016-01-26T12:12:40.720 に答える