私の意見では、考慮すべき2つのこと:
サービスやレディスクラスター/センチネルは、サーブを実行するのに十分なポッドがある場合にのみ、信頼性の高い冗長性を提供できます氷:2つのノード、5つのelasticsearchポッドがある場合、3つのポッドは1つのノードにあり、2つは他のノードにあります。最大レプリケーションは2になります。同じノードに2つのレプリカポッドがあると、あなたはインデックス全体を失う。
[編集]永続的なブロックストレージを使用する場合(永続性には最適ですが、各ノードが独自のブロックを必要とするため設定が複雑でスケーリングが難しい)、インデックス全体を失うことはありません。ローカルストレージに依存している場合はtrueです。
この理由から、ノードが多いほど優れています。
、あなたは十分なリソースを必要としています。ノードが小さくなるほどリソースが少なくなります。したがって、ポッドが大量のトラフィックを取得し始めると、ポッドが制限に達しやすくなり、ポッドが取り除かれます。
エラスチュアサーチは、かなりメモリホッグです。これらのすべてのPodを実行するのがより大きなノードを必要とするかどうかを判断する必要があります。
最終的には、必要に応じてさまざまな容量のノードを混在させて使用することをお勧めします。GKEには、容量とメモリとCPUの制限を設定するためのラベルが付いています。また、独自のラベルを追加して、特定のPodが特定のタイプのノードになるようにすることもできます。
出典
2016-12-05 16:45:01
MrE
4 x n1-standard-2と2 x n1-standard-4を比較してみましょう。これは価格とCPU/memの両方で同等でしょうか?これは8×n1-standard-1と同じであろう。私は個人的には、ほとんどの粒度を可能にするため、最後のオプションに行き、おそらく自動スケーリングを有効にします(min = 6、max = 8)。そうすれば、クラスタのサイズはより高い需要に対応できますが、それ以外の場合は縮小します。たぶんそれをいくつかのサービスのために水平ポッドオートスケーリングと組み合わせるのでしょうか? –
@RobertLacokノードにリソース制限が不十分な場合、配備中にノードが自動的にスケールされますか? – AndrewMcLagan
問題は、使用する予定のサーバーの種類ではなく、どのサービスが何を使用するかについてです(dbまたはelasticsearchに大きなリソースを提供する傾向がありますが、反応アプリケーションには非常に小さなリソースの制限があります)。重要なのは、各deployment/rcのデフォルトの制限を設定することです。特定のタイプのマシン(ノードアフィニティhttp://kubernetes.io/docs/user-guide/node-selection/)にもデプロイメントを割り当てることがより安全だとわかりました。 ressourcesの配備内の設定は安全ではないとは考えていません。厳密なリソース管理なしでは自動スケーリングは理解できません。 – Ben