クラスタの安定性と信頼性を確保するために、クラスタノードとして適切な Elastic Compute Service (ECS) の仕様を選択することをお勧めします。このトピックでは、ACK クラスタを作成する際の ECS 仕様の推奨構成について説明します。
クラスタ計画
ACK クラスタを作成するときに小規模の ECS インスタンスを選択すると、以下の問題が発生する可能性があります。
ネットワークの問題: 小規模の ECS インスタンスは、限られたネットワークリソースしか使用できません。
容量の問題: クラスタの安定性と信頼性を確保するために、システムは CPU、メモリ、ディスクなどのノードリソースを予約して、クラスタを管理し、インフラストラクチャコンポーネントを実行します。小規模の ECS インスタンスは、クラスタのパフォーマンスと可用性に悪影響を与える可能性があります。ACK クラスタのノードにおける CPU とメモリリソースの予約ポリシーの詳細については、「ノードリソース予約ポリシー」をご参照ください。
リソースフラグメントの問題: システムがノードリソースを割り当てるときに、コンテナが小規模の ECS インスタンスを占有している場合、ECS インスタンスの残りのアイドルリソースは、コンテナの作成または復元に使用できません。これはリソースの無駄につながります。たとえば、ノードは整数の CPU しか割り当てることができませんが、ノード上のアプリケーションポッドは少量の CPU リソースしか必要としません。その結果、残りの CPU リソースは無駄になります。
大規模の ECS インスタンスを使用することをお勧めします。これには、次の利点があります。
ネットワークの利点: 帯域幅を大量に消費するアプリケーションの場合、帯域幅が大きいほどリソース使用率が高くなります。さらに、ECS インスタンス上のコンテナは相互に通信しやすくなり、ネットワーク伝送が削減されます。
イメージプルの利点: イメージのプルがより効率的になります。イメージから複数のコンテナを作成するには、イメージを 1 回だけプルする必要があります。小規模の ECS インスタンスを選択した場合は、イメージを複数回プルする必要があります。コンテナを作成するために ECS インスタンスの数をスケールアウトする必要がある場合は、さらに時間がかかります。その結果、アプリケーションの応答レイテンシが増加します。
ECS 仕様の選択方法の詳細については、以下のコンテンツをご参照ください。
ワーカーノードを作成するための ECS 仕様を選択する
ノードの仕様は、4 vCPU および 8 GB のメモリ以上である必要があります。
クラスタの日常業務に必要な合計 vCPU と可用性の要件を決定します。
たとえば、ACK クラスタに 160 vCPU が必要で、10% の障害率を許容できる場合は、インスタンスごとに 16 vCPU を搭載した ECS インスタンスを少なくとも 10 個選択することをお勧めします。これにより、ピーク時に少なくとも 144 vCPU を消費できます。この制限は、次の計算に基づいています。160 vCPU × 90% = 144 vCPU。ACK クラスタの最大障害率が 20% の場合は、インスタンスごとに 32 vCPU を搭載した ECS インスタンスを少なくとも 5 個選択することをお勧めします。これにより、ピーク時に少なくとも 128 vCPU を消費できます。この制限は、次の計算に基づいています。160 vCPU × 80% = 128 vCPU。このようにして、ECS インスタンスがダウンした場合、残りの ECS インスタンスは引き続きワークロードにサービスを提供し、高可用性を確保できます。
ACK クラスタに 1,000 vCPU が必要な場合は、ECS Bare Metal インスタンスを選択できます。詳細については、「ECS Bare Metal インスタンスの使用シナリオと利点」をご参照ください。
1:2 や 1:4 など、ポッドのリソースリクエストに基づいて vCPU とメモリの比率を決定します。Java アプリケーションなど、メモリ使用量が多いアプリケーションの場合は、vCPU とメモリの比率を 1:8 にすることをお勧めします。
マスターノードを作成するための ECS 仕様を選択する
マスターノードは、ACK クラスタの作成時に etcd、kube-apiserver、kube-controller などのコアコンポーネントを実行します。本番環境にデプロイされているACK 専用クラスターでは、クラスタの安定性に影響を与えないように、適切なマスターノードの仕様を選択する必要があります。マスターノードの仕様は、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 |
100 ~ 200 ノード | 16 vCPU、64 GB |
200 ~ 500 ノード(爆発半径を推定する必要があります) | 64 vCPU、128 GB |
ECS Bare Metal インスタンスの使用シナリオと利点
ECS ベアメタルインスタンスは、Alibaba Cloud が最先端の仮想化 2.0 テクノロジーに基づいて開発した革新的なコンピューティングサービスです。仮想化 2.0 により、ECS ベアメタルインスタンスは仮想マシン (ECS インスタンス) の弾力性、物理マシンのパフォーマンスと機能、入れ子になった仮想化の完全なサポートを備えています。
ECS Bare Metal インスタンスは、排他的なコンピューティングリソース、暗号化されたコンピューティング、新しいハイブリッドクラウドの構築において利点があります。CS Bare Metal インスタンスとサポートされているインスタンスファミリの詳細については、「概要」をご参照ください。
ECS Bare Metal インスタンスの使用シナリオには、以下が含まれますが、これらに限定されません。
ACK クラスタは、ワークロードにサービスを提供するために最大 1,000 vCPU を必要とします。各 ECS Bare Metal インスタンスには、少なくとも 96 vCPU があります。大規模クラスタのシナリオでは、10 個または 11 個の ECS Bare Metal インスタンスを使用して ACK クラスタを作成できます。
短期間でスケールアウトします。e コマースのプロモーションイベントなどのシナリオでは、ECS Bare Metal インスタンスのパフォーマンスは、同じ構成の物理マシンのパフォーマンスよりも優れています。ECS Bare Metal インスタンスは、数百万の vCPU を提供してトラフィックの急増に対応します。
サポートされていない ECS 仕様
一般的な制限
クラスタの安定性とセキュリティを確保するために、次の表にリストされているインスタンス仕様を使用してワーカーノードまたはマスターノードを作成することはできません。
サポートされていないインスタンスファミリまたはインスタンスファミリカテゴリ | サポートされていないインスタンス仕様 | 説明 | 注記 |
バースト可能型 t5 インスタンスファミリ | ecs.t5-lc2m1.nano | インスタンスのパフォーマンスが不安定なため、クラスタが不安定になる可能性があります。 | なし |
バースト可能型 t6 インスタンスファミリ | ecs.t6-c4m1.large | インスタンスのパフォーマンスが不安定なため、クラスタが不安定になる可能性があります。 | なし |
4 vCPU コア未満のインスタンスの仕様 | ecs.g6.large | インスタンスのパフォーマンスが低いため、クラスタが不安定になる可能性があります。 | [クォータセンターコンソール] にアクセスして、低仕様の ECS インスタンスをサポートするクラスタとノードプールを作成できます。 |
c6t、セキュリティ強化型コンピューティング最適化インスタンスファミリ | ecs.c6t.large | サポートされていません | なし |
g6t、セキュリティ強化型汎用インスタンスファミリ | ecs.g6t.large | サポートされていません | なし |
Super Computing Cluster (SCC) インスタンスファミリ | ecs.sccg7.32xlarge | サポートされていません | なし |
詳細については、「ACK でサポートされている GPU インスタンスタイプ」をご参照ください。
Terway ネットワークプラグインの制限
Terway モードでは、ノード上のポッドの最大数は、ECS インスタンスによって提供される Elastic Network Interface (ENI) の数に基づいて計算されます。Terway モードが異なると、サポートされる ECS 仕様も異なります。詳細については、「Terway を使用する」をご参照ください。
共有 ENI モードまたは共有 ENI + Trunk ENI: ノード上のポッドの上限は 11 より大きくなければなりません。
(<a baseurl="t71560_v1_6_0.xdita" data-node="9548" data-root="84794" data-tag="xref" href="t9548.xdita#concept-sx4-lxv-tdb" id="7dec22dd9eofr">EniQuantity</a> - 1) × EniPrivateIpAddressQuantity > 11
。EniQuantity は ECS インスタンスタイプによって提供される ENI の数であり、EniPrivateIpAddressQuantity は ENI によって提供されるプライベート IP アドレスの数です。たとえば、ecs.g6.large インスタンスは 2 つの ENI を提供し、各 ENI は 6 つのプライベート IPv4 アドレスを提供します。
ノード上のポッドの最大数は (2 - 1) × 6 = 6
です。ecs.g6.large インスタンスは、共有 ENI モードと共有 ENI + Trunk ENI モードでは使用できません。専用 ENI: ノード上のポッドの上限は 6 より大きくなければなりません。
<a baseurl="t71560_v1_6_0.xdita" data-node="9548" data-root="84794" data-tag="xref" href="t9548.xdita#concept-sx4-lxv-tdb" id="027def5f024gd">EniQuantity</a> - 1 > 6
。たとえば、ecs.g6.xlarge インスタンスは 3 つの ENI を提供します。
ノード上のポッドの最大数は (3 - 1) = 2
です。ecs.g6.xlarge インスタンスは、専用 ENI モードでは使用できません。