ノードプールのスケールアウトは、インスタンスインベントリの不足、ゾーンオプションの不足、ECS (Elastic Compute Service) 設定の不足などの理由により失敗する可能性があります。 使用可能なvSwitchの数が減ると、ノードプールに追加できるインスタンスの数が減ります。 これにより、ノードプールのスケーラビリティが低下します。 ノードプールのスケーラビリティを評価し、それに応じてクラスター内のノードリソースを調整できます。 このトピックでは、ノードプールのスケーラビリティを確認する方法について説明します。
はじめに
Container Service for Kubernetes (ACK) は、ECSのDescribeAvailableResource操作を呼び出して、指定されたリージョンで利用可能なインスタンスとそのインベントリの可用性を照会します。 レスポンスのStatusCategoryパラメーターは、異なるゾーンのインスタンスタイプのインベントリ可用性を示します。 結果は、ノードプールのスケーラビリティを評価するために使用される。 詳細については、「DescribeAvailableResource」をご参照ください。
ステータス | StatusCategory | 説明 |
Available: インスタンスタイプが購入可能であることを示します。 | WithStock: インスタンスタイプに十分な在庫があることを示します。 スケールアウトイベントでは、このインスタンスタイプに優先順位を付けることができます。 | インスタンスタイプは在庫があり、補充されます。 |
ClosedWithStock: インスタンスタイプは在庫がありますが、補充されないことを示します。 | インスタンスタイプは在庫がありますが、補充されません。 | |
SoldOut: インスタンスタイプが売り切れであることを示します。 | WithoutStock: インスタンスタイプが完売しましたが、補充されることを示します。 | インスタンスタイプは在庫切れですが、補充されます。 インスタンスタイプは一時的に在庫切れです。 |
ClosedWithoutStock: インスタンスタイプが完売し、補充されないことを示します。 | インスタンスタイプは在庫切れであり、補充されません。 他のユーザーが使用しているインスタンスがリリースされた場合、StatusCategoryの状態はClosedWithStockに変更されます。 |
スケーラビリティは、利用可能なリソースプールの数に基づいて評価される。 使用可能なリソースプールの数は、WithStock状態のリソースプールの数とClosedWithStock状態のリソースプールの数に基づいて計算されます。 WithStock状態のリソースプールの重みは1です。 ClosedWithStock状態のリソースプールの重みは0.5です。
使用可能なリソースプールの数=WithStock状態のリソースプールの数 × 1 + ClosedWithStock状態のリソースプールの数 × 0.5
利用可能なリソースプールの数が2より少ない場合、スケーラビリティは低いと評価される。
利用可能なリソースプールの数が2以上4未満の場合、スケーラビリティは中であると評価される。
利用可能なリソースプールの数が4以上の場合、スケーラビリティは高いと評価される。
ノードプールのスケーラビリティの評価例
OpenAPI ExplorerでDescribeAvailableResourceを呼び出して、指定されたリージョンで使用可能なインスタンスタイプとそのインベントリの可用性を照会します。
OpenAPI ExplorerでDescribeAvailableResourceを呼び出す方法の詳細については、「DescribeAvailableResource」をご参照ください。
サンプルリクエスト:
https://ecs.aliyuncs.com/?Action=DescribeAvailableResource &RegionId=cn-beijing &DestinationResource=InstanceType &<Common request parameters>
レスポンス例:
{ "RequestId": "735E42EB-197F-5331-8C83-68ECA68D****", "AvailableZones": { "AvailableZone": [ { "Status": "Available", "StatusCategory": "WithStock", "ZoneId": "cn-beijing-k", "AvailableResources": { "AvailableResource": [ { "Type": "InstanceType", "SupportedResources": { "SupportedResource": [ { "Status": "Available", "StatusCategory": "WithStock", "Value": "ecs.s6-c1m2.small" }, { "Status": "Available", "StatusCategory": "WithStock", "Value": "ecs.hfr7.xlarge" }, { "Status": "Available", "StatusCategory": "ClosedWithoutStock", "Value": "ecs.sn1ne.2xlarge" }, { "Status": "Available", "StatusCategory": "ClosedWithStock", "Value": "ecs.hfg6.2xlarge" } ] } } ] }, "RegionId": "cn-beijing" }, { "Status": "Available", "StatusCategory": "WithStock", "ZoneId": "cn-beijing-h", "AvailableResources": { "AvailableResource": [ { "Type": "InstanceType", "SupportedResources": { "SupportedResource": [ { "Status": "Available", "StatusCategory": "WithStock", "Value": "ecs.s6-c1m2.small" }, { "Status": "Available", "StatusCategory": "WithStock", "Value": "ecs.n4.small" }, { "Status": "Available", "StatusCategory": "WithoutStock", "Value": "ecs.video-trans.26xhevc" }, { "Status": "Available", "StatusCategory": "ClosedWithStock", "Value": "ecs.r6.2xlarge" }, ] } } ] }, "RegionId": "cn-beijing" } ] } }
サンプル応答は、WithStock状態のリソースプールの数が4であり、ClosedWithStock状態のリソースプールの数が2であることを示しています。 利用できないリソースプールの数は2つで、WithoutStock状態のリソースプールとClosedWithoutStock状態のリソースプールが1つ含まれます。
その後、使用可能なリソースプールの数を計算できます。
利用可能なリソースプールの数は5であり、これは高いスケーラビリティを示す。
ノードプールのスケーラビリティを確認する
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
On theクラスターページで、管理するクラスターの名前をクリックし、 左側のナビゲーションウィンドウに表示されます。
On theノードプールページで確認するノードプールを見つけ、名前をクリックするか、詳細で、アクション列を作成します。
ノードプールの詳細ページで、概要 タブをクリックします。 ノードプール情報 セクションで、スケーリンググループ の右側にあるスケーリンググループIDをクリックして、スケーラビリティを表示できます。
次のステップ
スケーラビリティが低い場合は、次の操作を実行することを推奨します。
ノードプールの複数のゾーンにvSwitchを指定します。
ノードプールに十分な在庫があるインスタンスタイプを指定します。
詳細については、「ノードプールの作成」をご参照ください。