2016-04-02 4 views
0

現在、Rancherでコンテナをスケーリングしている間に永続的ではあるがユニークなボリューム間のギャップを埋めるようにしています(これは抽象的な質問です)。異なるが永続的なボリュームを持つRancherのスケーリングDockerコンテナ

例として、私は、Rancher/Composeで定義されたサービスを持っています。これは、名前付きボリュームをデータ/ワールドディレクトリとして使用します(-v minecraft_data:/ dataなど)。/dataディレクトリ)。このような名前のボリュームを使用しているのは、匿名ボリュームでは不可能なサービスのアップグレード(イメージのバージョンを変更している、環境変数を変更したいなど)と、

サービスの規模を拡大しようとすると、複数のコンテナが同じデータにアクセスする(多くのユースケースに適していない)か、匿名ボリュームを使用するときにサービスのアップグレード可能性が失われます。

この問題を解決するツール、ベストプラクティスまたはパターンはありますか?

答えて

1

:代わりにスケールを使用しての

、私は別のプロジェクト名と異なるインスタンスを起動します。これにより、環境、スタック、またはコンテナで有効なボリュームを作成できます。

あなたのユースケースでは、コンテナごとの範囲が必要なものであるように思えます。

version: '2' 
services: 
    foo: 
    image: busybox 
    volumes: 
    - bar:/var/lib/storage 
    command: /bin/sh -c 'while true; do sleep 500; done' 
volumes: 
    bar: 
    per_container: true 

はその後、rancher-compose up -dは一つの容器とユニークなボリュームでスタックしてサービスを作成します。rancher-compose使用してあなたのような何かをします。 rancher scale foo=2は、独自のボリュームなどを持つ別のコンテナを作成します。rancher-ebsまたはrancher-nfsのようなボリュームごとのボリュームストレージドライバをそれぞれのオプションで指定することもできます。

+0

これはRancher GUIでも可能ですか?ボリュームスコープのドキュメント(http://docs.rancher.com/rancher/v1.4/en/rancher-services/storage-service/)を読むと、単純なローカル以外のストレージドライバをインストールする必要があるようですオプションを取得するためのストレージ。 – RikuXan

+0

カタログからドライバを追加した後、GUIから環境スコープのボリュームを作成できます。コンテナごとに取得するには、これまでcompose構文のオプションにすぎないようです(1.4以降) –

0

私はあなたが望むものは、プロジェクト全体の違いのインスタンスを持つことだと思います。 scaleは同一のクローンを意味しますが、異なるデータを持つ場合は同一ではありません。 storage driversは、環境インフラレベルでにプラグインすることができます(この時点ではバージョン1.4)牧場主の現在のバージョンではhttps://docs.docker.com/compose/overview/#multiple-isolated-environments-on-a-single-host

+0

これはおそらく真実ですが、私はスケールが機能するのと同じ方法で簡単に自動化する方法があることを期待しています(つまり、コンテナとボリュームが連続した番号を取得する)。私はスタックが少しずつ乱雑になり、すぐに必要な各コンテナに新しいサービスを作成することができます。 – RikuXan

関連する問題