このページでは、Container Service for Kubernetes (ACK) の仮想ノードに関するよくある質問(ゾーン間の高可用性、GPU サポート、スケジューリング優先度、イメージプル動作、課金など)に回答します。
機能概要
次の表は、仮想ノードの主な機能を一覧で示したものです。
| 機能 | サポート状況 | 備考 |
|---|---|---|
| ゾーン間の高可用性 | はい | eci-profile |
| GPU リソース | はい | アノテーション(インスタンスタイプ)または nvidia.com/gpu フィールド経由 |
| ECS インスタンスとの混在スケジューリング | はい | Taint、Toleration、およびアフィニティルールで設定 |
| 課金方法に基づくスケジューリング優先度 | はい | サブスクリプション ECS → 従量課金 ECS → Elastic Container Instance |
| 自己管理型 HTTP リポジトリからのイメージプル | はい(回避策あり) | HTTPS から HTTP に切り替えるためのアノテーションを追加 |
| 実際のリソース使用量に基づく課金 | いいえ | 作成時に設定された vCPU およびメモリ仕様に基づいて課金 |
ゾーンをまたいでデプロイされたサービスに対して、仮想ノードを使用して高可用性を実現するにはどうすればよいですか?
eci-profile の vSwitchIds フィールドに、異なるゾーンに属する複数の vSwitch を指定します。クラスターが Elastic Container Instance (ECI) ベースの Pod を作成する際、これらの vSwitch に関連付けられたゾーン(例:ゾーン A およびゾーン B)に仮想ノードを作成しようと試みることで、サービスの高可用性を実現します。
構成の詳細については、「eci-profile の構成」をご参照ください。
仮想ノードは GPU リソースをサポートしていますか?
はい。ECI ベースの Pod で GPU リソースをリクエストする方法は次の 2 つがあります。
Pod 仕様の
metadataセクションにアノテーションを追加し、GPU インスタンスのインスタンスタイプを指定します。resourcesセクションにnvidia.com/gpuを追加し、GPU の台数を指定します。
YAML をデプロイすると、指定された GPU 構成で Pod が自動的に作成されます。
詳細については、「GPU インスタンスを使用して Pod を作成する」をご参照ください。
Pod のスケジューリング時に ECS インスタンスを Elastic Container Instance よりも優先し、スケールイン時に Elastic Container Instance を ECS インスタンスよりも優先するにはどうすればよいですか?
Kubernetes の Taint、Toleration、およびアフィニティルールを使用して、Pod を ECS インスタンスと Elastic Container Instance のどちらに配置するかを制御できます。Pod のスケジューリングを ECS インスタンスのみ、または Elastic Container Instance のみに限定することも可能です。また、ECS インスタンスを Elastic Container Instance よりも優先するように設定することで、ECS の容量が不足した場合にのみ Elastic Container Instance が使用されるようにできます。スケールイン時には、ECI ベースの Pod が最初に削除されます。
設定手順については、「ECS インスタンスと Elastic Container Instance に基づくリソース割り当ての構成」をご参照ください。
課金方法に基づくスケジューリング優先度を設定する場合は、次のようにスケジューリング順序を構成します。
| 優先度 | リソースタイプ |
|---|---|
| 1(最高) | サブスクリプション ECS インスタンス |
| 2 | 従量課金 ECS インスタンス |
| 3(最低) | Elastic Container Instance |
スケールインは逆順で実行され、まず ECI ベースの Pod が削除され、次に従量課金 ECS インスタンスベースの Pod、最後にサブスクリプション ECS インスタンスベースの Pod が削除されます。
課金方法に基づくスケジューリングについては、「優先度に基づくリソーススケジューリングの構成」をご参照ください。
仮想ノードベースのスケジューリングオプションの比較については、「仮想ノードベースのスケジューリングソリューションの概要と比較」をご参照ください。
自己管理型イメージリポジトリから HTTPS 経由でイメージをプルする際に証明書検証が失敗した場合はどうすればよいですか?
Elastic Container Instance はデフォルトで HTTPS 経由でイメージをプルします。自己管理型イメージリポジトリが HTTP を使用している場合、証明書検証が失敗し、プルが拒否されます。
これを修正するには、Elastic Container Instance にアノテーションを追加して、イメージプルプロトコルを HTTP に切り替えます。アノテーションの詳細については、「自己管理型イメージリポジトリからイメージをプルする」をご参照ください。
vCPU 数とメモリサイズを指定して ECI ベースの Pod を作成した場合、その Pod はリソース仕様に基づいて課金されるのか、それとも実際のリソース使用量に基づいて課金されるのか?
Pod は、実際の使用量ではなく、作成時に設定された vCPU およびメモリ仕様に基づいて課金されます。リクエストした仕様が Elastic Container Instance でサポートされていない場合、システムが自動的に仕様を調整し、調整後の仕様に基づいて課金されます。
料金の詳細については、「Elastic Container Instance の課金」をご参照ください。