クラスターの安定性と信頼性を確保するために、クラスターノードには適切な Elastic Compute Service (ECS) インスタンスタイプを選択します。このトピックでは、Alibaba Cloud Container Service for Kubernetes (ACK) クラスターを作成する際に推奨される ECS インスタンス仕様について説明します。
クラスター仕様の計画
多数の小規模な ECS インスタンスを使用して ACK クラスターを作成すると、次の問題が発生する可能性があります。
ネットワークの制限:小規模なワーカーノードはネットワークリソースが限られています。
リソース容量:クラスターの安定性と信頼性を確保するために、システムは CPU、メモリ、ディスクなどの一部のノードリソースをクラスター管理およびインフラストラクチャコンポーネント用に予約します。この予約により、小規模な ECS インスタンスで利用可能なリソースが大幅に減少し、クラスターのパフォーマンスと可用性に影響を与える可能性があります。ACK のノードリソース予約ポリシーの詳細については、「ノードリソース予約ポリシー」をご参照ください。
リソースの断片化:小規模な ECS インスタンス上のリソースがコンテナーに割り当てられると、残りのリソースが断片化して使用できなくなる可能性があります。これらの残りのリソースは、新しいコンテナーの作成や障害が発生したコンテナーの回復には使用できず、リソースの無駄につながります。たとえば、あるノードが CPU を整数単位でしか割り当てられず、アプリケーションが必要とする CPU 量が少ない場合、その単位の残りの CPU リソースが無駄になる可能性があります。
大規模な ECS インスタンスを使用すると、次の利点があります。
ネットワークパフォーマンスの向上:大規模なインスタンスはネットワーク帯域幅が広いため、高帯域幅のアプリケーションに最適です。さらに、単一の ECS インスタンス内でより多くのコンテナーが通信できるため、ノード間のネットワークトラフィックが削減されます。
効率的なイメージのプル:大規模なインスタンスでは、イメージは一度だけプルされ、複数のコンテナーで使用できます。対照的に、多数の小規模な ECS インスタンスを持つクラスターでは、同じイメージを複数回プルする必要があります。このプロセスは、新しいインスタンスを追加してクラスターをスケールする際に時間がかかり、応答が遅れます。
ECS インスタンスタイプの選択方法の詳細については、以降のセクションをご参照ください。
ワーカーノード仕様の選択
最低でも 4 CPU コア、8 GB メモリのノード仕様を使用します。
日常的に使用する CPU コアの総数を計算し、クラスターの可用性要件を決定します。
たとえば、クラスターに合計 160 CPU コアが必要で、10% の故障率を許容する必要があるとします。この場合、それぞれ 16 CPU コアを持つ ECS インスタンスを少なくとも 10 台選択できます。ピーク時の運用負荷は 144 CPU コア (160 × 90%) を超えてはなりません。必要なフォールトトレランスが 20% の場合は、それぞれ 32 CPU コアを持つ ECS インスタンスを少なくとも 5 台選択できます。ピーク時の運用負荷は 128 CPU コア (160 × 80%) を超えてはなりません。この構成により、1 つの ECS インスタンスに障害が発生しても、残りのインスタンスでサービスをサポートし続けることができます。
クラスターの日次スケールが約 1,000 CPU コアに達する場合は、ECS ベアメタルインスタンスを使用できます。詳細については、「ECS ベアメタルインスタンスのシナリオと利点」をご参照ください。
Pod のリソース要件に基づいて、CPU とメモリの比率 (1:2 や 1:4 など) を決定します。Java アプリケーションなどのメモリ集約型アプリケーションの場合は、1:8 の比率を持つインスタンスタイプの使用を検討してください。
永続メモリインスタンスの使用
re6p などの永続メモリインスタンスであるワーカーノードは、通常のメモリと永続メモリの両方を含むハイブリッドメモリアーキテクチャを使用します。永続ストレージを実装するには、「不揮発性メモリボリューム」をご参照ください。永続メモリインスタンスの詳細については、「インスタンスファミリー」をご参照ください。
マスターノード仕様の選択
ACK クラスターを作成すると、etcd、kube-apiserver、kube-controller などのコアコンポーネントがマスターノードで実行されます。本番環境の ACK 専用クラスターでは、クラスターの安定性を確保するために適切なマスターノード仕様を選択する必要があります。必要な仕様はクラスターのサイズに依存し、クラスターが大きくなるほど高い仕様が要求されます。
クラスターのサイズは、ノード数、Pod 数、デプロイメント頻度、アクセス量など、いくつかの方法で測定できます。簡単にするために、このトピックではノード数でクラスターのサイズを測定します。
個人的なテストや学習には、小規模な ECS インスタンスを使用できます。本番クラスターでは、マスターノードの負荷を安全なレベルに維持するために、次の表からマスターノードの仕様を選択してください。
ノード数 | 推奨されるマスターノード仕様 |
1~5 ノード | 4 CPU コア、8 GB メモリ (2 CPU コア、4 GB メモリ以下の仕様は推奨されません) |
6~20 ノード | 4 CPU コア、16 GB メモリ |
21~100 ノード | 8 CPU コア、32 GB メモリ |
100~200 ノード | 16 CPU コア、64 GB メモリ |
200~500 ノード (爆発半径のリスクを評価) | 64 CPU コア、128 GB メモリ |
ECS ベアメタルインスタンスのシナリオと利点
ECS ベアメタルインスタンスは、Alibaba Cloud が最先端の仮想化 2.0 テクノロジーに基づいて開発した革新的なコンピューティングサービスです。仮想化 2.0 により、ECS ベアメタルインスタンスは仮想マシン (ECS インスタンス) の弾力性、物理マシンのパフォーマンスと機能、そして入れ子になった仮想化の完全なサポートを備えています。
ECS ベアメタルインスタンスは、専用の計算リソース、暗号化コンピューティング、ハイブリッドクラウドの構築に最適です。ECS ベアメタルインスタンスとサポートされているインスタンスファミリーの詳細については、「ECS ベアメタルインスタンスの概要」をご参照ください。
ECS ベアメタルインスタンスの典型的なシナリオは次のとおりです。
クラスターが毎日約 1,000 CPU コアにスケールする場合。単一の ECS ベアメタルインスタンスは、少なくとも 96 CPU コアを提供します。大規模なシナリオでは、わずか 10 または 11 の ECS ベアメタルインスタンスを使用してクラスターを作成できます。
コンテナーの数を迅速にスケールする必要がある場合。たとえば、E コマースのセールスプロモーション中に、ECS ベアメタルインスタンスは同じ仕様の物理サーバーよりも優れたパフォーマンスを発揮します。数百万の vCPU の計算容量を提供して、トラフィックスパイクを処理できます。
サポートされていない ECS インスタンスタイプ
一般的な制限
クラスターの安定性とセキュリティ上の理由から、ACK は次の表にあるインスタンスタイプをワーカーノードまたはマスターノードとして使用することをサポートしていません。
サポートされていないインスタンスファミリーまたはグループ | サポートされていないインスタンスタイプの例 | 説明 | 注意 |
バースト可能インスタンスファミリー t5 | ecs.t5-lc2m1.nano | インスタンスのパフォーマンスが不安定で、クラスターが不安定になる可能性があります。 | なし。 |
バースト可能インスタンスファミリー t6 | ecs.t6-c4m1.large | インスタンスのパフォーマンスが不安定で、クラスターが不安定になる可能性があります。 | なし。 |
4 vCPU コア未満のインスタンスタイプ | ecs.g6.large | インスタンスの仕様が低すぎるため、クラスターが不安定になる可能性があります。 | クラスターおよびノードプールに低仕様の ECS インスタンスタイプを使用するには、Quota Center でリクエストを送信してください。 |
セキュリティ強化コンピューティング最適化インスタンスファミリー c6t | ecs.c6t.large | サポートされていません。 | なし。 |
セキュリティ強化汎用インスタンスファミリー g6t | ecs.g6t.large | サポートされていません。 | なし。 |
Super Computing Cluster (SCC) インスタンスファミリー | ecs.sccg7.32xlarge | サポートされていません。 | なし。 |
ACK クラスターでサポートされている GPU 高速化インスタンスファミリーの詳細については、「ACK でサポートされている GPU 高速化インスタンスファミリー」をご参照ください。
Terway ネットワークプラグインの制限
Terway ネットワークプラグインを使用する場合、単一ノードで実行できる Pod の最大数は、そのノードの ECS インスタンスタイプがサポートする Elastic Network Interface (ENI) の数に依存します。したがって、サポートされる ECS インスタンスタイプは Terway モードによって異なります。詳細については、「Terway ネットワークプラグインの使用」をご参照ください。
共有 ENI モードまたは共有 ENI + Trunk ENI モード:単一ノードの Pod 制限は 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">ECS インスタンスタイプでサポートされる ENI 数</a> - 1) × 単一 ENI でサポートされるプライベート IP アドレス数 > 11。たとえば、ecs.g6.large インスタンスタイプは 2 つの ENI をサポートし、単一の ENI は 6 つのプライベート IPv4 アドレスをサポートします。単一ノードの Pod 制限は
(2 - 1) × 6 = 6です。したがって、このインスタンスタイプは使用できません。排他的 ENI モード:単一ノードの Pod 制限は 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">ECS インスタンスタイプでサポートされる ENI 数</a> - 1 > 6。たとえば、ecs.g6.xlarge インスタンスタイプは 3 つの ENI をサポートします。単一ノードの Pod 制限は
3 - 1 = 2です。したがって、このインスタンスタイプは使用できません。