このトピックでは、Container Service for Kubernetes (ACK) クラスターを作成するときにElastic Compute Service (ECS) 仕様を選択する方法について説明します。
クラスター計画
ACKクラスターの作成時に小サイズのECSインスタンスを選択した場合、次の問題が発生する可能性があります。
ネットワークの問題: 小規模なECSインスタンスでは、限られたネットワークリソースしか使用できません。
容量の問題: クラスターの安定性と信頼性を確保するために、システムはCPU、メモリ、ディスクなどのノードリソースを予約して、クラスターを管理し、インフラストラクチャコンポーネントを実行します。 小規模なECSインスタンスは、クラスターのパフォーマンスと可用性に悪影響を与える可能性があります。
リソースフラグメントの問題: システムがノードリソースを割り当てるときに、コンテナが小サイズのECSインスタンスを占有している場合、ECSインスタンス上の残りのアイドルリソースを使用してコンテナを作成または復元することはできません。 これは資源の浪費をもたらす。 例えば、ノードは整数個のCPUしか割り当てることができないが、ノード上のアプリケーションポッドは少量のCPUリソースしか必要としない。 その結果、残りのCPUリソースが浪費される。
次の利点がある大規模なECSインスタンスを使用することを推奨します。
ネットワークの利点: 帯域幅が大きいアプリケーションの場合、帯域幅が大きいとリソースの使用率が高くなります。 さらに、ECSインスタンス上のコンテナは相互に通信しやすくなり、ネットワーク伝送が減少します。
画像プルの利点: 画像はより効率的にプルされます。 イメージから複数のコンテナを作成するには、イメージを1回だけプルする必要があります。 小型のECSインスタンスを選択した場合、イメージを複数回プルする必要があります。 コンテナを作成するためにECSインスタンスの数もスケールアウトする必要がある場合は、さらに時間がかかります。 その結果、アプリケーションのレスポンスレイテンシが増加します。
ECS仕様の選択方法の詳細については、「ECS仕様を選択してマスターノードを作成する」および「ECS仕様を選択してワーカーノードを作成する」をご参照ください。
ECS仕様を選択してマスターノードを作成する
ACKクラスターのマスターノードは、etcd、kube-apiserver、kube-controllerなどのコアコンポーネントを実行します。 これらのコンポーネントは、ACKクラスタの安定性を決定する。 したがって、マスターノードに最適なECS仕様を選択する必要があります。 マスターノードの仕様は、ACKクラスターのサイズに依存します。 より大きなACKクラスタは、より高い仕様を必要とする。
ACKクラスターのサイズは、ノード数、ポッド数、デプロイ頻度、リクエスト数などの複数の要因に基づいて決定されます。 このトピックでは、クラスターサイズはノード数に基づいて決定されます。
個別のテストと学習には、小型のECSインスタンスを使用することを推奨します。 次の表に、本番環境にデプロイされたマスターノードに推奨されるECS仕様を示します。 提案された仕様は、マスタノードの負荷を低いレベルに維持することができる。
ノード数 | 推奨されるマスターノード仕様 |
1〜5ノード | 4 vCPU、8 GB (2 vCPU、4 GBの仕様は推奨されません) |
6〜20ノード | 4 vCPU、16 GB |
21から100ノード | 8 vCPU、32 GB |
200ノードへの100 | 16 vCPU、64 GB |
500ノードへの200 (爆風半径を推定する必要があります) | 64 vCPU、128 GB |
ECS仕様を選択してワーカーノードを作成する
ノードの仕様は、4 vCPU、8 GB以上のメモリである必要があります。 詳細については、「ACKクラスターのECS仕様の選択に関する提案」をご参照ください。
通常のワークロードで使用されるvCPUの総数と、ACKクラスターで許容される障害率に基づいて、ACKクラスター内のワーカーノードの仕様を決定します。
たとえば、ACKクラスターが160のvCPUを必要とし、10% の障害率を許容できる場合、それぞれが16のvCPUを提供する少なくとも10のECSインスタンスを選択することを推奨します。 ピーク時に使用されるvCPUが144 (160 × 90%) を超えないようにしてください。 ACKクラスターが20% の障害率を許容できる場合、少なくとも5つのECSインスタンスを選択し、それぞれが32のvCPUを提供することを推奨します。 ピーク時に使用されるvCPUが128 (160 × 80%) を超えないようにしてください。 これにより、ECSインスタンスがダウンしても、残りのECSインスタンスは引き続きワークロードに対応し、高可用性を確保できます。
ACKクラスターに1,000のvCPUが必要な場合は、ECS Bare Metalインスタンスを選択できます。 詳細については、「ECS Bare Metalインスタンスの使用シナリオと利点」をご参照ください。
ポッドのリソース要求に基づいてvCPUとメモリの比率 (1:2または1:4など) を決定します。 Javaアプリケーションなどのメモリが多いアプリケーションの場合、vCPUとメモリの比率を1:8に選択することを推奨します。
ECS Bare Metalインスタンスのシナリオと利点の使用
適用シナリオ
ACKクラスターでは、ワークロードを処理するために最大1,000のvCPUが必要です。 各ECS Bare Metalインスタンスには、少なくとも96個のvCPUがあります。 10個または11個のECS Bare Metalインスタンスを使用してACKクラスターを作成できます。
短時間でスケールアウトします。 eコマースプロモーションイベントなどのシナリオでは、ECS Bare MetalインスタンスをACKクラスターに追加して、トラフィックスパイクに対処できます。 各ECS Bare Metalインスタンスは、複数のコンテナをホストできます。
メリット
極めて高いネットワークパフォーマンス リモートダイレクトメモリアクセス (RDMA) がサポートされています。 Terwayプラグインを使用すると、ハードウェアのパフォーマンスを最大化できます。 これにより、コンテナは9 Gbit/sを超える帯域幅でホスト間で相互に到達できます。
ジッターのない最適なコンピューティングパフォーマンス: ECS Bare Metalインスタンスは、ハイパーバイザーの代わりにAlibaba Cloudによって開発されたチップを使用します。 仮想マシンの作成または実行にリソースは消費されません。 これにより、リソースの競合を回避できます。
高いセキュリティ: ECS Bare Metalインスタンスは、物理層での暗号化とIntelベースの暗号化をサポートしています®ソフトウェアガード拡张机能 (インテル)®SGX) 。 このタイプのインスタンスは、ブロックチェーンアプリケーションをサポートする信頼できるコンピューティング環境も提供します。
詳細については、「概要」をご参照ください。