レプリケーション コントローラによって制御され、Kubernetes のサービスの背後に「隠されている」ポッドは、どのようにデータを読み書きしますか? 永続化する必要があるユーザーから画像を受け取るアプリケーションがある場合、どこに保存すればよいですか? 前のサービスのため、ボリュームを使用する場合、どのノードに保存されるかを制御できません。
3 に答える
あなたの質問に対する「簡単な」答えは、すべてのポッドが同じデータにアクセスできるように、Kubernetes クラスターの下に共有ストレージが必要になるということだと思います。そうすれば、ポッドがどこで実行されているか、どのポッドが実際にサービスを実行しているかは問題になりません。
別の解決策はFlockerである可能性があります、彼らは自分自身を簡単に説明します:
Flocker は、データ ボリューム マネージャーおよびマルチホスト Docker クラスター管理ツールです。これにより、Linux で ZFS の機能を活用することにより、ステートレス アプリケーションに使用するのと同じツールを使用してデータを制御できます。
とにかく、Kubernetes やその他の Docker 化されたインフラストラクチャに関するストレージの問題は非常に興味深いと思います。
このSO Questionで指摘されているように、google-app-engine はデフォルトでアプリ間のデータ ストアの共有をサポートしていないようです。
Google Compute Engine で実行している場合は、ポッドにバインドされ、ポッドと共に移動する Compute Engine 永続ディスク (ネットワーク接続ストレージ) を使用できます。
https://kubernetes.io/docs/concepts/storage/volumes/#gcepersistentdisk
他のタイプのネットワーク接続ストレージ (iSCSI、NFS など) をサポートしたいと考えていますが、まだ構築する機会がありません。プルリクエスト大歓迎!;)