自己管理ノードの操作

Container Engine for Kubernetesで自己管理ノードを設定および使用する方法をご紹介します。

自己管理ノードは、Container Engine for Kubernetesが作成したコンピュート・インスタンスではなく、コンピュート・サービスで自身を作成したコンピュート・インスタンス(またはインスタンス・プール)でホストされるワーカー・ノードです。自己管理ノードは、通常、Bring Your Own Nodes (BYON)と呼ばれます。管理対象ノードおよび仮想ノード(それぞれ管理対象ノード・プールおよび仮想ノード・プールにグループ化される)とは異なり、自己管理ノードはノード・プールにグループ化されません。

コンピュート・サービスを使用して、自己管理ノードをホストするコンピュート・インスタンスを作成します。コンピュート・サービスを使用すると、管理対象ノードおよび仮想ノードで使用できないコンピュート・シェイプとイメージの組合せなど、特殊なワークロードのコンピュート・インスタンスを構成できます。たとえば、ハードウェアアクセラレーテッド・ワークロード(GPUシェイプなど)用に設計されたシェイプを持つインスタンスや、高周波プロセッサ・コア(HPCや最適化シェイプなど)を必要とする高パフォーマンス・コンピューティング(HPC)ワークロード用に設計されたシェイプが必要になる場合があります。このような多くのインスタンスを高帯域幅の超低レイテンシ・ネットワークで接続して、Oracle Cloud Infrastructureクラスタ・ネットワークを形成することもできます(RDMA Cluster Networksの使用を参照)。

管理を簡素化し、複数の自己管理ノードをグループとして管理する場合は、コンピュート・サービスを使用して、1つ以上の自己管理ノードをホストするコンピュート・インスタンス・プールを作成します。

自己管理ノードをホストするコンピュート・インスタンス(またはインスタンス・プール)を作成する場合は、インスタンスを追加するKubernetesクラスタを指定します。自己管理ノードは拡張クラスタにのみ追加できます。

自己管理ノードを追加するクラスタと、自己管理ノードをホストするコンピュート・インスタンスに使用するイメージの両方が、特定の要件を満たしている必要があります。Cluster RequirementsおよびImage Requirementsをそれぞれ参照してください。

概要レベルでは、自己管理ノードをホストして既存のクラスタに追加するコンピュート・インスタンスを作成するには、次のステップに従います。

  • 動的グループ(クラスタに追加するコンピュート・インスタンスを含むルールを使用)および動的グループのポリシー(動的グループのメンバーがクラスタに参加できるようにするポリシー・ステートメントを使用)を作成します。「自己管理ノードの動的グループおよびポリシーの作成」を参照してください。
  • クラスタのKubernetes APIプライベート・エンドポイントおよびbase64でエンコードされたCA証明書を含むcloud-initスクリプトを作成します。「自己管理ノードのCloud-initスクリプトの作成」を参照してください。
  • OKEイメージに基づいて新しいコンピュート・インスタンスを作成し、cloud-initスクリプトを指定します。「自己管理ノードの作成」を参照してください。

コンピュート・インスタンスが作成されると、自己管理ノードとしてクラスタに追加されます。

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

  • 自己管理ノードを追加したクラスタを削除しても、自己管理ノードをホストしているコンピュート・インスタンスは終了しません。ノードで現在実行されているコンテナは、Kubernetesコントロール・プレーンに依存していなければ、引き続き実行できます。自己管理ノードを追加したクラスタを削除する場合、自己管理ノードをホストしているコンピュート・インスタンスを終了するのはユーザーの責任です。
  • コンピュート・サービスを使用して個々のコンピュート・インスタンスを作成し、個々の自己管理ノードをホストするだけでなく、コンピュート・サービスを使用して、1つ以上の自己管理ノードをホストするコンピュート・インスタンス・プールを作成することもできます。まず、クラスタのKubernetes APIプライベート・エンドポイントとbase64でエンコードされたCA証明書を含むインスタンス構成をcloud-initスクリプトに定義します(個々のコンピュート・インスタンスを作成しているかのように)。次に、インスタンス構成を使用して、インスタンス・プールに1つ以上のインスタンスを作成し、それぞれが自己管理ノードをホストできます。インスタンス構成を、インスタンス・プールの一部ではない個別のインスタンスを起動するためのテンプレートとして使用することもできます。詳細は、インスタンス構成の作成およびインスタンス・プールの作成を参照してください。
  • 自己管理ノードで実行されているKubernetesのバージョンをアップグレードするには、既存の自己管理ノードを新しい自己管理ノードに置き換える必要があります。既存のセルフマネージド・ノードの置換による新しいKubernetesバージョンへのセルフマネージド・ノードのアップグレードを参照してください。

クラスタ・ネットワークでの自己管理ノードの使用

コンピュート・サービスを使用して、1つ以上の自己管理ノードをホストするコンピュート・インスタンス・プールを作成する場合は、インスタンス・プールをOracle Cloud Infrastructureクラスタ・ネットワークとして管理できます(インスタンス・プールのあるクラスタNetworksを参照)。クラスタ・ネットワーク内のコンピュート・インスタンスは、高帯域幅の超低レイテンシのリモート・ダイレクト・メモリー・アクセス(RDMA)ネットワークによって接続されます。Container Engine for KubernetesでのRDMAネットワークの使用の詳細は、githubでのOracle Cloud Infrastructure Container Engine for Kubernetes (OKE)でのGPUワークロードの実行を参照してください。

自己管理ノードを使用する場合、サポートされない主な機能

自己管理ノードを使用する場合、一部の機能が使用できないか、まだ使用できません。

自己管理ノードはノード・プールにグループ化されないため、ノード・プールに関連する機能は適用されません。

サポートされていない機能です 追加情報
コンソールContainer Engine for Kubernetesの「メトリック」ページの自己管理ノード・メトリック 自己管理ノードのKubernetesメトリックは、コンソールContainer Engine for Kubernetesサービスの「メトリック」ページに表示されません。

kubectlを使用して、自己管理ノードのKubernetesメトリック(Kubernetesノード状態など)を表示し、コンピュート・サービスのコンソール・メトリック・ページを使用して、自己管理ノードをホストするコンピュート・インスタンスのコンピュート・メトリック(メモリー使用率など)を表示します。

OKE OL7およびOL8イメージ以外のイメージの使用 まだ使用可ではない
Kubernetesスキュー・ポリシーの適用 クラスタのコントロール・プレーン・ノードが2つのマイナー・バージョン(またはKubernetesバージョン1.28以降、3つのマイナー・バージョン)である必要があるというKubernetesスキュー・ポリシーは、ワーカー・ノードより先に強制されません。
Kubernetesクラスタ・自動スケーリング まだ使用可ではない
VCNネイティブ・ポッド・ネットワーク まだ使用可ではない
Container Engine for Kubernetesのコードオンおよびドレイン・オプション 自己管理ノードのContainer Engine for Kubernetesコードオンおよびドレイン・オプションは指定できません。かわりに、ネイティブKubernetesコードンおよびドレイン・コマンドを使用します。
ワーカー・ノードのアップグレードまたは更新時のノード・サイクリング まだ使用可ではない