容量予約を使用した管理対象ノードのプロビジョニング

Kubernetes Engine (OKE)を使用して作成したクラスタのコンピュート容量を予約する方法をご紹介します。

コンピュート・サービスを使用すると、容量予約を作成して、ディザスタ・リカバリや予期しないワークロードの急増などのクリティカル・イベント中に必要な場合に、ワークロードに対してコンピュート容量を使用できるようにします。コンピュート・サービスによる容量の割当て方法、予約されている容量、および制限と割当ての適用方法の詳細は、容量予約を参照してください。

コンピュート・サービスで容量予約を作成した後、Kubernetes Engineを使用して管理対象ノード・プールの配置構成を定義するときに、その容量予約を指定できます。容量予約を指定すると、ノード・プールの管理対象ノードが、予約済容量のコンピュート・インスタンスを使用して作成されます。

次の点に注意してください:

  • ノード・プールの配置構成で容量予約を指定する前に、容量予約がすでに存在している必要があります。容量予約を作成するステップについては、容量予約の管理を参照してください。
  • ノード・プールの配置構成のノード・シェイプ、可用性ドメインおよびフォルト・ドメインが、それぞれ容量予約のインスタンス・タイプ、可用性ドメインおよびフォルト・ドメインと一致していることを確認します。
  • ノード・プールの配置構成で複数の可用性ドメインを指定する場合は、可用性ドメインごとに異なる容量予約を指定できます。
  • ワーカー・ノード・プロパティに対する変更は、新しいワーカー・ノードにのみ適用されます。ノード・プールに関連付けられた容量予約を更新しても、既存のワーカー・ノードのプロパティには影響しません。

容量予約の使用に必要なIAMポリシー

ノード・プールの配置構成を定義するときに容量予約を使用するには、容量予約を使用する権限が付与されているグループに属している必要があります。この権限を付与するには、次のポリシーを作成します:

Allow group <group-name> to use compute-capacity-reservations in <location>

グループがデフォルトのアイデンティティ・ドメインにない場合は、group '<identity-domain-name>'/'group-name'の形式で、グループ名の前にアイデンティティ・ドメイン名を追加します。group id <group-ocid>の形式で、そのOCIDを使用してグループを指定することもできます。

容量予約から管理対象ノードをプロビジョニングするには、容量予約を使用してインスタンスを起動する権限をKubernetes Engineに付与する必要があります。この権限を付与するには、次のポリシー・ステートメントを使用してポリシーを作成します:

Allow service oke to use compute-capacity-reservations in tenancy
Allow any-user to use compute-capacity-reservations in tenancy where request.principal.type = 'nodepool'

詳細は、必要なIAMポリシーを参照してください。

デフォルトの容量予約

Kubernetes Engineは、管理対象ノードの起動時にデフォルトの容量予約の使用をサポートします。デフォルトの容量予約では、インスタンスが可用性ドメインおよび予約に関連付けられたテナンシで起動されるたびに、同じ容量予約が使用されるようにできます。デフォルトの容量予約を作成すると、その可用性ドメインおよびテナンシで起動されたすべてのインスタンス(管理対象ノードを含む)は、可能な場合はデフォルトの容量予約から容量を使用します。詳細は、デフォルト容量予約を参照してください。

デフォルトの容量予約からワーカー・ノードをプロビジョニングしない場合があります。代替容量予約を選択するか、容量予約をまったく使用しないことを選択できます。

コンソールの使用

クラスタの作成と容量予約の指定

  1. 「カスタム作成」ワークフローを使用してクラスタを作成する手順に従います。コンソールを使用した、カスタム作成ワークフローでの明示的に定義された設定によるクラスタの作成を参照してください。
  2. クラスタ内の管理対象ノード・プールの「配置構成」を指定する場合:
    1. 最初の可用性ドメインおよびサブネットを指定します:
      • 可用性ドメイン:使用する容量予約に関連付けられている可用性ドメインを選択します。
      • フォルト・ドメイン: (オプション)ワーカー・ノードを配置する可用性ドメイン内の1つ以上のフォルト・ドメイン。
      • サブネット:使用する容量予約に関連付けられたサブネットを選択します。
    2. 「拡張オプションの表示」をクリックし、使用する容量予約を指定します:

      • 容量タイプ: 「容量予約」を選択します。
      • 容量予約:使用する容量予約をリストから選択します。容量予約を明示的に選択せず、その可用性ドメインに対してデフォルトの容量予約が作成されている場合は、デフォルトの容量予約が使用されます。デフォルトの容量予約またはその他の容量予約を使用しない場合は、「デフォルト予約のオプトアウト」を選択します。

    3. オプションで、「別の行」をクリックして、配置構成に可用性ドメイン、サブネットおよび容量予約を追加します。ノード・プールの配置構成で複数の可用性ドメインを指定する場合は、可用性ドメインごとに異なる容量予約を指定できます。

管理対象ノード・プールの作成と容量予約の指定

  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナとアーティファクト」で、「Kubernetesクラスタ(OKE)」をクリックします。
  2. 作業する権限があるコンパートメントを選択します。
  3. 「クラスタ・リスト」ページで、新しいノード・プールを作成するクラスタの名前をクリックします。
  4. 「Cluster」ページで、「Node Pools」タブを表示し、「Add Node Pool」をクリックして新しい管理対象ノード・プールを作成し、そのワーカー・ノードに必要なプロパティを指定します。
  5. クラスタ内の管理対象ノード・プールの「配置構成」を指定する場合:
    1. 最初の可用性ドメインおよびサブネットを指定します:
      • 可用性ドメイン:使用する容量予約に関連付けられている可用性ドメインを選択します。
      • フォルト・ドメイン: (オプション)ワーカー・ノードを配置する可用性ドメイン内の1つ以上のフォルト・ドメイン。
      • サブネット:使用する容量予約に関連付けられたサブネットを選択します。
    2. 「拡張オプションの表示」をクリックし、使用する容量予約を指定します:

      • 容量タイプ: 「容量予約」を選択します。
      • 容量予約:使用する容量予約をリストから選択します。容量予約を明示的に選択せず、その可用性ドメインに対してデフォルトの容量予約が作成されている場合は、デフォルトの容量予約が使用されます。デフォルトの容量予約またはその他の容量予約を使用しない場合は、「デフォルト予約のオプトアウト」を選択します。

    3. オプションで、「別の行」をクリックして、配置構成に可用性ドメイン、サブネットおよび容量予約を追加します。ノード・プールの配置構成で複数の可用性ドメインを指定する場合は、可用性ドメインごとに異なる容量予約を指定できます。

管理対象ノード・プールの更新および容量予約の指定

  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナとアーティファクト」で、「Kubernetesクラスタ(OKE)」をクリックします。
  2. 作業する権限があるコンパートメントを選択します。
  3. 「クラスタ・リスト」ページで、変更するクラスタの名前をクリックします。
  4. 「リソース」の下の「ノード・プール」をクリックし、変更する管理対象ノード・プールの名前をクリックします。
  5. 「ノード・プールの詳細」ページで、「編集」をクリックします。
  6. クラスタ内の管理対象ノード・プールの「配置構成」を指定する場合:
    1. 最初の可用性ドメインおよびサブネットを指定します:
      • 可用性ドメイン:使用する容量予約に関連付けられている可用性ドメインを選択します。
      • フォルト・ドメイン: (オプション)ワーカー・ノードを配置する可用性ドメイン内の1つ以上のフォルト・ドメイン。
      • サブネット:使用する容量予約に関連付けられたサブネットを選択します。
    2. 「拡張オプションの表示」をクリックし、使用する容量予約を指定します:

      • 容量タイプ: 「容量予約」を選択します。
      • 容量予約:使用する容量予約をリストから選択します。容量予約を明示的に選択せず、その可用性ドメインに対してデフォルトの容量予約が作成されている場合は、デフォルトの容量予約が使用されます。デフォルトの容量予約またはその他の容量予約を使用しない場合は、「デフォルト予約のオプトアウト」を選択します。

    3. オプションで、「別の行」をクリックして、配置構成に可用性ドメイン、サブネットおよび容量予約を追加します。ノード・プールの配置構成で複数の可用性ドメインを指定する場合は、可用性ドメインごとに異なる容量予約を指定できます。
  7. 変更を保存

CLIの使用

CLIの使用の詳細は、コマンド・ライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、コマンドライン・リファレンスを参照してください。

管理対象ノード・プールの作成と容量予約の指定

CLIを使用して、容量予約を使用して管理対象ノードをプロビジョニングする管理対象ノード・プールを作成するには、--placement-configsパラメータにcapacityReservationIdキー/値ペアを含めます。

例:

oci ce node-pool create \
--cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd \
--name test-node \
--node-image-id ocid1.image.oc1.iad.aaaaaaaa6______nha \
--compartment-id oocid1.compartment.oc1..aaaaaaaay______t6q \
--kubernetes-version v1.21.5 \
--node-shape VM.Standard2.1 \
--placement-configs "[{\"availability-domain\":\"IqDk:US-ASHBURN-AD-2\", \"capacityReservationId\":\"ocid1.capacityreservation.oc1.iad.anuwcljt2ah______yeq\", \"subnet-id\":\"ocid1.subnet.oc1.iad.aaaaaaaa2xpk______zva\", \"faultDomains\":[\"FAULT-DOMAIN-3\", \"FAULT-DOMAIN-1\"]}, {\"availability-domain\":\"IqDk:US-ASHBURN-AD-1\", \"subnet-id\":\"ocid1.subnet.oc1.iad.aaaaaaaauhls______bpq\", \"faultDomains\": [\"FAULT-DOMAIN-1\", \"FAULT-DOMAIN-2\"]}]" \
--size 1 \
--region=us-ashburn-1 \

ノード・プールを作成する可用性ドメインにデフォルトの容量予約が作成されている場合、その容量予約がデフォルトで使用されます。デフォルトの容量予約またはその他の容量予約を使用しない場合は、capacityReservationIdキーの値を二重引用符で囲まれた空の文字列(\"capacityReservationId\":\"")に設定します。

ノード・プールの配置構成で複数の可用性ドメインを指定する場合は、可用性ドメインごとに異なる容量予約を指定できます。

APIの使用

APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。

管理対象ノード・プールの作成または更新時に容量予約を指定するには、nodeConfigDetailsオブジェクトのplacementConfigs属性を使用します。

管理対象ノード・プールを作成する可用性ドメインにデフォルトの容量予約が作成されている場合、その容量予約がデフォルトで使用されます。デフォルトの容量予約またはその他の容量予約を使用しない場合は、capacityReservationIdフィールドの値を二重引用符で囲まれた空の文字列("capacityReservationId":"")に設定します。

ノード・プールの配置構成で複数の可用性ドメインを指定する場合は、可用性ドメインごとに異なる容量予約を指定できます。