ノードプール を作成する - Amazon SageMaker AI

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

ノードプール を作成する

NodePool は、Karpenter が作成できるノードと、それらのノードで実行できるポッドに制約を設定します。NodePool は、以下のとおりに設定できます。

  • ノードの作成を特定のゾーン、インスタンスタイプ、コンピュータアーキテクチャに制限します。

  • Karpenter が作成するノードで実行できるポッドを制限するラベルまたはテイントを定義します。

注記

HyperPod プロバイダーは、以下で説明する既知の Kubernetes および Karpenter 要件の限定されたセットをサポートしています。

以下の手順は、NodePool を作成する方法を説明しています。

  1. 必要な NodePool 設定で、nodepool.yaml という名前の YAML ファイルを作成します。

  2. 以下のサンプル設定を使用できます。

    すべての依存リソースが適切に機能していることを示す ReadyConditions で探します。

    apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: sample-np spec: template: spec: nodeClassRef: group: karpenter.sagemaker.amazonaws.com kind: HyperpodNodeClass name: multiazc5 expireAfter: Never requirements: - key: node.kubernetes.io/instance-type operator: Exists
  3. NodePool をクラスターに適用する:

    kubectl apply -f nodepool.yaml
  4. NodePool ステータスをモニタリングして、ステータスの Ready 条件が True に設定されていることを確認します。

    kubectl get nodepool sample-np -oyaml
    apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: <nodepool-name> uid: <resource-uid> ... spec: disruption: budgets: - nodes: 90% consolidateAfter: 0s consolidationPolicy: WhenEmptyOrUnderutilized template: spec: expireAfter: 720h nodeClassRef: group: karpenter.sagemaker.amazonaws.com kind: HyperpodNodeClass name: <nodeclass-name> requirements: - key: node.kubernetes.io/instance-type operator: Exists status: conditions: - lastTransitionTime: "<timestamp>" message: "" observedGeneration: 2 reason: ValidationSucceeded status: "True" type: ValidationSucceeded - lastTransitionTime: "<timestamp>" message: "" observedGeneration: 2 reason: NodeClassReady status: "True" type: NodeClassReady - lastTransitionTime: "<timestamp>" message: "" observedGeneration: 2 reason: Ready status: "True" type: Ready

Karpenter HyperPod プロバイダーでサポートされているラベル

これらは、NodePool 設定で指定できるオプションの制約と要件です。

要件タイプ

目的

ユースケース/サポートされる値

推奨事項

インスタンスタイプ (node.kubernetes.io/instance-type)

Karpenter が選択できる SageMaker インスタンスタイプを制御します。

ml.c5.xlarge のみに制限する代わりに、Karpenter がインスタンスグループで使用可能なすべてのタイプから選択できるようにします。

これを未定義のままにするか、Exists 演算子を使用して、費用対効果の高いインスタンスタイプを選択する際に Karpenter に最大限の柔軟性を提供することもできます。

アベイラビリティーゾーン (topology.kubernetes.io/zone)

で作成できるAWSアベイラビリティーゾーンノードを制御します

us-east-1c などの特定のゾーン名。レイテンシーまたはコンプライアンス上の理由から、特定のゾーンでポッドを実行する必要がある場合に使用します。

該当なし

アーキテクチャ (kubernetes.io/arch)

CPU アーキテクチャを指定します。

amd64 のみ (現時点では ARM サポートなし)

該当なし