OKEワーカー・ノード・プールの作成
ワークロード・クラスタのCompute Cloud@CustomerでOKEワーカー・ノード・プールを作成する方法について学習します。
ノードはCompute Cloud@Customerコンピュート・インスタンスです。ワーカー・ノード・プールを作成する場合は、作成するノードの数と、インスタンスを定義するその他のパラメータを指定します。
OKE cloud-init
スクリプトはカスタマイズできません。
プロキシ設定を構成するには、CLIまたはAPIを使用して、ノード・メタデータにプロキシを設定します。クラスタでVCNネイティブ・ポッド・ネットワーキングを使用している場合は、noproxy設定に169.254.169.254を追加します。
-
コンピュートCloud@Customerコンソール・ダッシュボードで、「コンテナ/Kubernetesクラスタの表示(OKE)」を選択します。
ノード・プールをアタッチするクラスタがリストに表示されない場合は、ページ上部のコンパートメント・メニューから別のコンパートメントを選択します。
-
ノード・プールの追加先のクラスタの名前を選択します。
-
クラスタの詳細ページの「リソース」で、「ノード・プール」を選択します。
-
「ノード・プール」リストで、「ノード・プールの追加」を選択します。
-
「ノード・プールの追加」ダイアログ・ボックスで、次の情報を入力します:
-
名前: 新しいノード・プールの名前。機密情報を入力しないでください。
-
コンパートメント: 新しいノード・プールを作成するコンパートメント。
-
ノード・プール・オプション: 「ノード数」フィールドに、このノード・プールに必要なノード数を入力します。デフォルトは0です。最大数はクラスタ当たり128で、複数のノード・プールに分散できます。
-
ネットワーク・セキュリティ・グループ: ネットワーク・セキュリティ・グループを有効にするボックスにチェックマークを入れた場合は、「ネットワーク・セキュリティ・グループの追加」を選択し、ドロップダウン・リストからNSGを選択します。必要なNSGを見つけるには、コンパートメントの変更が必要になる場合があります。ワーカー・サブネットからのプライマリVNICは、このNSGにアタッチされます。
-
配置構成
-
ワーカー・ノード・サブネット: 「ワーカー・サブネットの作成(Flannel Overlay)」または「ワーカー・サブネットの作成(VCNネイティブ・ポッド)」で説明されている、ワーカー・サブネットなどの構成を持つサブネットを選択します。パブリック・クラスタの場合は、ワーカー・サブネットのNATプライベート・バージョンを作成します。プライベート・クラスタの場合は、VCNのみのプライベート・バージョンのワーカー・サブネットを作成します。サブネットを1つのみ選択してください。サブネットには、コントロール・プレーン・エンドポイントと通信するためのルールが設定されている必要があります。サブネットはプライベート・ルート表を使用し、「ワーカー・サブネットの作成(Flannelオーバーレイ)」または「ワーカー・サブネットの作成(VCNネイティブ・ポッド)」で説明されているワーカー-seclistセキュリティ・リストのようなセキュリティ・リストを持っている必要があります。
-
フォルト・ドメイン: フォルト・ドメインを選択するか、デフォルト・オプションである「最適なフォルト・ドメインを自動的に選択します」を選択します。
-
-
ソース・イメージ: イメージを選択します。
-
「プラットフォーム・イメージ・ソース・タイプ」を選択します。
-
リストからイメージを選択してください。
イメージ・リストには、オペレーティング・システム、OSバージョンおよびKubernetesバージョン列があります。「OSバージョン」または「Kubernetesバージョン」の右側にあるドロップダウン・メニュー矢印を使用して、別のバージョンを選択できます。
使用するイメージがリストに表示されない場合は、CLIプロシージャを使用してイメージのOCIDを指定します。目的のイメージのOCIDを取得するには、このイメージを以前に使用したノード・プールに対して
ce node-pool get
コマンドを使用します。ノート
指定するイメージには、クラスタの作成時に指定したKubernetesバージョンより新しいKubernetesバージョンを含めることはできません。クラスタのKubernetesバージョンは、クラスタ・リスト表の列にあります。
-
-
シェイプ: ワーカー・ノードのシェイプを選択します。シェイプはVM.PCAStandard.E5です。Flexは変えられない。
必要なOCPUの数を指定します。オプションで、必要なメモリーの合計量を指定できます。メモリーのギガバイトのデフォルト値は、OCPUに指定した数の16倍です。許容される最小値と最大値を表示するには、各値フィールドの内側を選択します。
-
ブート・ボリューム: (オプション)ボックスにチェックマークを入れ、カスタム・ブート・ボリューム・サイズを指定します。
ブート・ボリューム・サイズ(GB): 選択したイメージのデフォルトのブート・ボリューム・サイズが表示されます。大きいサイズを指定するには、50から16384までの値をギガバイト(50 GBから16 TB)で入力するか、増分および減分矢印を使用します。
カスタム・ブート・ボリューム・サイズを指定する場合、より大きいサイズを使用できるようにパーティションを拡張する必要があります。Oracle Linuxプラットフォーム・イメージには、
oci-utils
パッケージが含まれています。そのパッケージのoci-growfs
コマンドを使用して、ルート・パーティションを拡張し、ファイル・システムを拡張します。oci-growfsを参照してください。 -
ポッド通信(VCNネイティブ・ポッド・ネットワーキング・クラスタのみ)
ポッド通信サブネット: ポッド・サブネット(VCNネイティブ・ポッド)の作成で説明されているポッド・サブネットのような構成を持つサブネットを選択します。
ノード当たりのポッド数: ノード・プール内の単一のワーカー・ノードで実行するポッドの最大数。デフォルト値は「31」です。1から110までの数値を入力できます。指定したシェイプで許可されるVNICの数(上の「シェイプ」を参照)は、この最大ポッド数を制限します。ノード・シェイプおよびポッド数を参照してください。ポッド・サブネットのアドレス領域を節約するには、単一のワーカー・ノードで実行するポッドの最大数を減らします。これにより、ポッド・サブネットに事前に割り当てられるIPアドレスの数が削減されます。
「ネットワーク・セキュリティ・グループ(NSG)でセキュリティ・ルールを使用」チェック・ボックスを選択した場合は、「ネットワーク・セキュリティ・グループの追加」ボタンを選択し、ドロップダウン・リストからNSGを選択します。必要なNSGを見つけるには、コンパートメントの変更が必要になる場合があります。ポッド・サブネットからのセカンダリVNICは、このNSGにアタッチされます。
-
コードンおよびドレイン: (オプション)削除猶予期間の分数を減らすか増やすには、矢印を使用します。「猶予期間後に強制終了」の選択を解除することはできません。ノードは、ポッドが削除された後、またはすべてのポッドが削除されない場合でも、削除猶予期間の終了時に削除されます。
コードンおよびドレインおよびエビクションの猶予期間については、このページの「CLI」タブを選択し、ノードおよびノード・プールの削除設定を参照してください。
-
SSHキー: ワーカー・ノードの公開SSHキー。公開キー・ファイルをアップロードするか、ファイルの内容をコピーして貼り付けます。
-
Kubernetesラベル: 「Kubernetesラベルの追加」ボタンを選択し、キー名と値を入力します。これらのラベルを使用して、特定のノードまたはノードのグループでスケジュールするためのポッドをターゲットにできます。CLI手順の説明と例を参照してください。
-
ノード・プール・タグ: ノード・プール・リソースの定義済タグまたはフリーフォーム・タグ。
ノート
OraclePCA-OKE.cluster_id定義済タグまたはClusterResourceIdentifierフリーフォーム・タグの値を指定しないでください。これらのタグ値はシステムによって生成され、ノード(インスタンス)にのみ適用され、ノード・プール・リソースには適用されません。
-
ノード・タグ: ノード・プール内のすべてのノードに適用される定義済またはフリーフォーム・タグ。
重要
OraclePCA-OKE.cluster_id定義済タグまたはClusterResourceIdentifierフリーフォーム・タグの値を指定しないでください。これらのタグ値はシステムによって生成されます。
-
-
「ノード・プールの追加」を選択します。
ノード・プールの詳細ページが表示されます。「リソース」で、「作業リクエスト」を選択して、ノード・プールの作成の進行状況を確認し、「ノード」リストに追加されているノードを表示します。作業リクエストのステータスは、クラスタが「アクティブ」状態または「失敗」状態になるまで「受理済」です。
インスタンスのリストでこれらのノードを識別するには、これらのノードの名前の形式が
oke-ID
であることに注意してください。ID
は、ノード・プールOCIDのpca_name
の後の最初の32文字です。このノード・プールOCIDのID
文字列を含む名前を持つインスタンスをリストで検索します。インスタンスのリストでこれらのノードを識別するには、これらのノードの名前がノード・プールOCIDの
ccc_name
の後の最初の32文字を含み、OraclePCA-OKE/cluster_idタグにクラスタOCIDが含まれていることに注意してください。
次の手順:
-
ワーカー・ノードに必要なレジストリまたはリポジトリを構成します。OKEサービスおよびアプリケーション・イメージで使用する自己管理パブリックまたはイントラネット・コンテナ・レジストリへのアクセス権があることを確認します。
-
Compute Cloud@Customerの外部でコンテナ化されたアプリケーションを公開するサービスを作成します。コンテナ化されたアプリケーションの公開を参照してください。
-
アプリケーションで使用する永続ストレージを作成します。コンテナ化されたアプリケーションのストレージの追加を参照してください。
既存のノードのプロパティを変更するには、かわりに新しい設定で新しいノード・プールを作成し、作業を新しいノードに移動します。
-
新しいノード・プールを作成するには、oci ce node-pool createコマンドと必要なパラメータを使用します。
oci ce node-pool create --cluster-id <cluster_OCID> --compartment-id <compartment_OCID> --name <pool_name> --node-shape <node_shape_name> [OPTIONS]
-
コマンドの実行に必要な情報を取得します。
-
ノード・プールを作成するコンパートメントのOCID:
oci iam compartment list
-
このノード・プールのクラスタのOCID:
oci ce cluster list
-
ノード・プールの名前。機密情報を入力しないでください。
-
ワーカー・サブネットOCIDおよびフォルト・ドメインを含む、ノードの配置構成。コンソールの手順の配置構成の説明を参照してください。このオプションの内容と形式を表示するには、次のコマンドを使用します。
$ oci ce node-pool create --generate-param-json-input placement-configs
フォルト・ドメインをリストするには、次のコマンドを使用します:
oci iam fault-domain list
。配置構成で複数のフォルト・ドメインまたは複数のサブネットを指定しないでください。システムで最適なフォルト・ドメインを選択できるようにするには、フォルト・ドメインを指定しないでください。 -
(VCNネイティブ・ポッド・ネットワーキング・クラスタのみ)ポッド・サブネットのOCID。ポッド・サブネット(VCNネイティブ・ポッド)の作成を参照してください。前のコンソールの手順のポッド通信の説明も参照してください。
--pod-subnet-ids
オプションを使用します。--pod-subnet-ids
オプション値は配列ですが、指定できるポッド・サブネットOCIDは1つのみです。ノード・プール内の単一のワーカー・ノードで実行するポッドの最大数。
--max-pods-per-node
オプションを使用します。デフォルト値は「31」です。1から110までの数値を入力できます。指定したシェイプで許可されるVNICの数(下の「シェイプの名前」を参照)は、この最大ポッド数を制限します。ノード・シェイプおよびポッド数を参照してください。ポッド・サブネットのアドレス領域を節約するには、単一のワーカー・ノードで実行するポッドの最大数を減らします。これにより、ポッド・サブネットに事前に割り当てられるIPアドレスの数が削減されます。(オプション)このノード・プールのポッドに使用するネットワーク・セキュリティ・グループのOCID。
--pod-nsg-ids
オプションを使用します。NSGは最大5つまで指定できます。 -
このノード・プールのノードに使用するイメージのOCID。
使用するイメージのOCIDを取得するには、次のコマンドを使用します:
$ oci compute image list --compartment-id compartment_OCID
使用するイメージがリストされていない場合は、このイメージを以前に使用したノード・プールの
ce node-pool get
コマンドの出力からイメージのOCIDを取得できます。ノート
指定するイメージは、その
display-name
に-OKE-
があり、クラスタの作成時に指定したKubernetesバージョンより新しいKubernetesバージョンを持つことはできません。クラスタのKubernetesバージョンは、
cluster list
出力に表示されます。イメージのKubernetesバージョンは、image list
出力のdisplay-name
プロパティに表示されます。次のイメージのKubernetesバージョンは1.29.9です。"display-name": "uln-pca-Oracle-Linux8-OKE-1.29.9-20250325.oci"
node-pool create
コマンドで--kubernetes-version
オプションを指定しないでください。カスタム・ブート・ボリューム・サイズをギガバイト単位で指定できます。デフォルトのブート・ボリューム・サイズは50 GBです。カスタム・ブート・ボリューム・サイズを指定するには、
--node-source-details
オプションを使用して、ブート・ボリューム・サイズとイメージの両方を指定します。--node-image-id
と--node-source-details
の両方を指定することはできません。次のコマンドを使用して、ノード・ソースの詳細オプションの内容と形式を表示します。$ oci ce node-pool create --generate-param-json-input node-source-details
カスタム・ブート・ボリューム・サイズを指定する場合、より大きいサイズを使用できるようにパーティションを拡張する必要があります。Oracle Linuxプラットフォーム・イメージには、
oci-utils
パッケージが含まれています。そのパッケージのoci-growfs
コマンドを使用して、ルート・パーティションを拡張し、ファイル・システムを拡張します。oci-growfsを参照してください。 -
このノード・プールのワーカー・ノードのシェイプの名前。Compute Cloud@Customer X10システムの場合、コントロール・プレーン・ノードのシェイプはVM.PCAStandard.E5です。フレックス
次の例に示すように、シェイプ構成を指定します。
ocpus
に値を指定する必要があります。memoryInGBs
プロパティはオプションです。デフォルト値は、ocpus
の16倍です。--node-shape-config '{"ocpus": 32, "memoryInGBs": 512}'
ノート
実行中の10個のポッドごとに、少なくとも2 OCPUおよび32 GBのメモリーを割り当てます。計画されているワークロードに応じて、より多くのリソースを割り当てる必要がある場合があります。ポッドおよびコンテナのResource Managementを参照してください。
-
(オプション)このノード・プールのノードに使用するネットワーク・セキュリティ・グループのOCID。
オプションを使用します。複数のNSGを指定しないでください。--nsg-ids
-
(オプション)ラベルノードにラベルを設定すると、特定のノードまたはノード・グループでスケジューリングするためにポッドをターゲットにできます。この機能を使用して、特定のポッドが特定の分離、セキュリティまたは規制プロパティを持つノードでのみ実行されるようにします。
--initial-node-labels
オプションを使用して、ノードにラベルを追加します。ラベルは、Kubernetesクラスタに参加した後にノードに追加するキー/値ペアのリストです。メタデータ・キーの制限があります。メタデータ・キーの制限事項を参照してください。次に、ノード・プール内のノードに適用するラベルの例を示します。
--initial-node-labels '[{"key":"disktype","value":"ssd"}]
ラベルに基づいてノードを選択する簡単な方法は、ポッド構成で
nodeSelector
を使用することです。Kubernetesは、nodeSelector
セクションで指定されている各ラベルを持つノードにのみポッドをスケジュールします。次のポッド構成からの抜粋の例では、この構成を使用するポッドを、
ssd
ディスク・タイプ・ラベルを持つノードで実行する必要があることを指定します。nodeSelector: disktype: ssd
-
(オプション)ノード・メタデータ。
オプションを使用して、カスタム・ユーザー・データをノードにアタッチします。特定の例については、次のプロキシ設定項目を参照してください。--node-metadata
メタデータ・キーの制限事項を参照してください。ノード・メタデータの最大サイズは32,000バイトです。
-
(オプション)プロキシ設定。ネットワークで、ワーカー・ノードが外部レジストリまたはリポジトリに到達できるようにするためのプロキシ設定が必要な場合は、たとえば、
オプションの引数を作成します。--node-metadata
オプション引数で、次のサンプル・ファイル引数に示すように、--node-metadata
crio-proxy
およびcrio-noproxy
の値を指定します。{ "crio-proxy": "http://<your_proxy>.<your_domain_name>:<your_port>", "crio-noproxy": "localhost,127.0.0.1,<your_domain_name>,ocir.io,<Kubernetes_cidr>,<pods_cidr>" }
クラスタでVCNネイティブ・ポッド・ネットワーキングを使用している場合は、次の例のように、noproxy設定に169.254.169.254を追加します:
"crio-noproxy": "localhost,127.0.0.1,your_domain_name,ocir.io,Kubernetes_cidr,pods_cidr,169.254.169.254"
-
(オプション)ノードおよびノード・プールの削除設定。ノード・プールの削除、指定したノードの削除、ノード・プールのサイズの縮小、またはノード・プール・ノードの配置構成の変更時に、ノードの削除を処理する方法を指定できます。これらのノード削除パラメータは、ノード・プールの更新、指定したノードの削除、またはノード・プールの削除時にも設定または変更できます。
ノード・プールの削除設定を指定するには、
--node-eviction-node-pool-settings
オプションの引数を作成します。ノードの削除猶予期間(evictionGraceDuration
)を指定できます。ノードは、ポッドが削除された後、または削除猶予期間の終了時に常に削除されます。-
削除猶予期間。この値は、ワーカー・ノードをコード化およびドレインできる時間を指定します。
コード化されたノードに新しいポッドを配置することはできません。そのノードの既存のポッドは影響を受けません。
ノードが排出されると、各ポッドのコンテナは正常に終了し、必要なクリーンアップを実行します。
削除猶予期間の値は、ISO 8601形式で表されます。デフォルト値と最大値は、60分(PT60M)です。最小値は20秒(PT20S)です。OKEは、常に少なくとも20秒間ノードをドレインしようとします。
-
強制削除ノードは、ポッドが削除された後、または削除猶予期間の終了時に常に削除されます。デフォルトまたは指定された削除猶予期間の後、1つ以上のポッド・コンテナが完全に排出されていない場合でも、ノードは削除されます。
次に、
--node-eviction-node-pool-settings
オプションの引数の例を示します。isForceDeleteAfterGraceDuration
プロパティを含める場合、値はtrue
である必要があります。ノードは、ポッドが削除された後、または削除猶予期間の終了時に常に削除されます。--node-eviction-node-pool-settings '{"evictionGraceDuration": "PT30M", "isForceDeleteAfterGraceDuration": true}'
ノート
Terraformを使用して
node_eviction_node_pool_settings
を指定する場合は、trueがデフォルト値であっても、is_force_delete_after_grace_duration
を明示的にtrueに設定する必要があります。Terraformを使用している場合、is_force_delete_after_grace_duration
プロパティ設定はオプションではありません。 -
-
(オプション)タグ
--defined-tags
または--freeform-tags
オプションを使用して、ノード・プール・リソースのフリーフォーム・タグを追加します。OraclePCA-OKE.cluster_id定義済タグまたはClusterResourceIdentifierフリーフォーム・タグの値を指定しないでください。これらのタグ値はシステムによって生成され、ノード(インスタンス)にのみ適用され、ノード・プール・リソースには適用されません。ノード・プール内のすべてのノードにフリーフォーム・タグを追加するには、
--node-defined-tags
および--node-freeform-tags
オプションを使用します。重要
OraclePCA-OKE.cluster_id定義済タグまたはClusterResourceIdentifierフリーフォーム・タグの値を指定しないでください。これらのタグ値はシステムによって生成されます。
-
-
ノード・プールの作成コマンドを実行します。
次に例を示します:
この例に示すオプション、および
--node-boot-volume-size-in-gbs
やnsg-ids
などの他のオプションの詳細は、コンソールの使用の手順を参照してください。--pod-subnet-ids
オプションは、クラスタでVCNネイティブ・ポッド・ネットワーキングが使用されている場合にのみ適用できます$ oci ce node-pool create \ --cluster-id ocid1.cluster.unique_ID --compartment-id ocid1.compartment.unique_ID \ --name node_pool_name --node-shape shape_name --node-image-id ocid1.image.unique_ID \ --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"ocid1.subnet.unique_ID"}]' \ --pod-subnet-ids '["ocid1.subnet.unique_ID"]' --size 10 --ssh-public-key "public_key_text"
work-request get
コマンドを使用して、ノード・プールの作成操作のステータスを確認します。作業リクエストOCIDは、cluster get
出力のmetadata
セクションのcreated-by-work-request-id
にあります。$ oci ce work-request get --work-request-id workrequest_OCID
作業リクエストのステータスは、クラスタがアクティブ状態または失敗状態になるまで
ACCEPTED
になります。インスタンスのリストでこれらのノードを識別するには、これらのノードの名前の形式が
oke- ID
であることに注意してください。ID
は、ノード・プールOCIDの名前の後の最初の32文字です。このノード・プールOCIDのID
文字列を含む名前を持つインスタンスをリストで検索します。
CLIのコマンド、フラグおよびオプションの完全なリストは、コマンドライン・リファレンスを参照してください。
次の手順:
-
ワーカー・ノードに必要なレジストリまたはリポジトリを構成します。OKEサービスおよびアプリケーション・イメージで使用する自己管理パブリックまたはイントラネット・コンテナ・レジストリへのアクセス権があることを確認します。
-
Compute Cloud@Customerの外部でコンテナ化されたアプリケーションを公開するサービスを作成します。コンテナ化されたアプリケーションの公開を参照してください。
-
アプリケーションで使用する永続ストレージを作成します。コンテナ化されたアプリケーションのストレージの追加を参照してください。
既存のノードのプロパティを変更するには、かわりに新しい設定で新しいノード・プールを作成し、作業を新しいノードに移動します。
-
CreateNodePool操作を使用して、新しいノード・プールを作成します。
APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
-
ワーカー・ノードに必要なレジストリまたはリポジトリを構成します。OKEサービスおよびアプリケーション・イメージで使用する自己管理パブリックまたはイントラネット・コンテナ・レジストリへのアクセス権があることを確認します。
-
Compute Cloud@Customerの外部でコンテナ化されたアプリケーションを公開するサービスを作成します。コンテナ化されたアプリケーションの公開を参照してください。
-
アプリケーションで使用する永続ストレージを作成します。コンテナ化されたアプリケーションのストレージの追加を参照してください。
既存のノードのプロパティを変更するには、かわりに新しい設定で新しいノード・プールを作成し、作業を新しいノードに移動します。
-