インスタンスセレクタ - Eksctl ユーザーガイド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インスタンスセレクタ

eksctl は、マネージド型ノードグループとセルフマネージド型ノードグループに複数のインスタンスタイプの指定をサポートしていますが、270 を超える EC2 インスタンスタイプでは、ユーザーはノードグループに適したインスタンスタイプを見つけるために時間を費やす必要があります。Cluster Autoscaler と連携する一連のインスタンスを選択する必要があるため、スポットインスタンスを使用するとさらに難しくなります。

eksctl は EC2 インスタンスセレクタと統合されるようになりました。これにより、vCPUs、メモリ、GPUsCPU アーキテクチャなどのリソース基準に基づいてインスタンスタイプのリストを生成することで、この問題に対処できます。インスタンスセレクタ条件に合格すると、eksctl はインスタンスタイプが指定された条件に一致するインスタンスタイプに設定されたノードグループを作成します。

クラスターとノードグループを作成する

eksctl に渡されたインスタンスセレクタリソース条件に一致するインスタンスタイプを使用する単一のノードグループを持つクラスターを作成するには、 を実行します。

eksctl create cluster --instance-selector-vcpus=2 --instance-selector-memory=4

これにより、 instanceTypesフィールドが に設定されているクラスターとマネージド型ノードグループが作成されます [c5.large, c5a.large, c5ad.large, c5d.large, t2.medium, t3.medium, t3a.medium] (返されるインスタンスタイプのセットは変更される可能性があります)。

アンマネージド型ノードグループの場合、 instancesDistribution.instanceTypesフィールドが設定されます。

eksctl create cluster --managed=false --instance-selector-vcpus=2 --instance-selector-memory=4

インスタンスセレクタ条件は ClusterConfig で指定することもできます。

# instance-selector-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: "4" # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB # cpuArchitecture: x86_64 # default value
eksctl create cluster -f instance-selector-cluster.yaml

次のインスタンスセレクタ CLI オプションは、 eksctl create clusterおよび でサポートされていますeksctl create nodegroup

--instance-selector-vcpus--instance-selector-memory--instance-selector-gpus および instance-selector-cpu-architecture

ファイルの例については、こちらを参照してください。

ドライラン

ドライラン機能を使用すると、ノードグループの作成に進む前に、インスタンスセレクタに一致するインスタンスを検査および変更できます。

eksctl create cluster --name development --instance-selector-vcpus=2 --instance-selector-memory=4 --dry-run apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig # ... managedNodeGroups: - amiFamily: AmazonLinux2 instanceSelector: memory: "4" vCPUs: 2 instanceTypes: - c5.large - c5a.large - c5ad.large - c5d.large - t2.medium - t3.medium - t3a.medium ... # other config

その後、生成された ClusterConfig を に渡すことができますeksctl create cluster

eksctl create cluster -f generated-cluster.yaml

CLI オプションを表す instanceSelectorフィールドは、可視性とドキュメント化の目的で ClusterConfig ファイルにも追加されます。--dry-run を省略すると、このフィールドは無視され、 instanceTypesフィールドが使用されます。省略しない場合、 への変更は eksctl によって上書きinstanceTypesされます。

ClusterConfig ファイルを で渡すと--dry-run、eksctl は各ノードグループのインスタンスセレクタリソース条件を展開した後、同じノードグループのセットを含む ClusterConfig ファイルを出力します。

# instance-selector-cluster.yaml --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster region: us-west-2 nodeGroups: - name: ng instanceSelector: vCPUs: 2 memory: 4 # 4 GiB, unit defaults to GiB managedNodeGroups: - name: mng instanceSelector: vCPUs: 2 memory: 2GiB # cpuArchitecture: x86_64 # default value
eksctl create cluster -f instance-selector-cluster.yaml --dry-run apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig # ... managedNodeGroups: - amiFamily: AmazonLinux2 # ... instanceSelector: cpuArchitecture: x86_64 memory: 2GiB vCPUs: 2 instanceTypes: - t3.small - t3a.small nodeGroups: - amiFamily: AmazonLinux2 # ... instanceSelector: memory: "4" vCPUs: 2 instanceType: mixed instancesDistribution: capacityRebalance: false instanceTypes: - c5.large - c5a.large - c5ad.large - c5d.large - t2.medium - t3.medium - t3a.medium # ...